ジャンゴとMySQLのエラーをドッキングウィンドウは、構成します

JEETパテル:

私は、ドッカーコンテナとジャンゴとMySQLアプリケーションを設定しようとしています。

3.7-スリムな画像とMySQL MySQL用:5.6ジャンゴのために私は、Pythonを使用しています。

私が実行した場合docker-compose upには、下記のエラーを返します-

ERROR: for app_mysql_db_1  Cannot start service mysql_db: driver failed programming external connectivity on endpoint app_mysql_db_1 (c647d4793a198af2c09cc52d08191fb2cd984025ad0a61434ad1577d9dcccebe): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use 

私は、コマンドを実行するdocker ps -aドッキングウィンドウの状態を確認すると、mysqlのコンテナが作成されたことがわかったが、Pythonのコンテナのステータスが終了しました。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
7d91795e0bae        mysql:5.6           "docker-entrypoint.s…"   15 seconds ago      Created                                        app_mysql_db_1
fa0419ad0f21        e0bf94710555        "/bin/sh -c 'adduser…"   2 minutes ago       Exited (1) 2 minutes ago                       pedantic_faraday

缶誰か書き換えまたは構成の変更を示唆しています。

Dockerfile

FROM python:3.7-slim

ENV PYTHONUNBUFFERED 1

RUN apt-get update
RUN apt-get install python3-dev default-libmysqlclient-dev gcc  -y
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

RUN mkdir /app

WORKDIR /app
COPY . /app

ドッキングウィンドウ-compose.yaml

version: "3"

services:
  eitan-application:
    restart: always
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - ./eitan:/app
    command: >
      sh -c "python3 manage.py runserver 0.0.0.0:8000
      && python3 manage.py makemigrations
      && python3 manage.py migrate"
    depends_on:
      - mysql_db
  mysql_db:
    image: mysql:5.6
    command: mysqld --default-authentication-plugin=mysql_native_password
    volumes:
      - "./mysql:/var/lib/mysql"
    ports:
      - "3306:3306"
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=root
      - MYSQL_USER=root
      - MYSQL_PASSWORD=root

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my-app-db',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'mysql_db',
        'PORT': 3307,
    }
}
makozaki:

bind: address already in useあなたには、いくつかのローカルデータベースを実行していることを示唆しています。私はせずに、それをテストしようと思いますので、ポート3306を公開していないドッキングウィンドウ・コンネットワークのアクセスデータベースの外部に必要としない場合

...
    ports:
      - "3306:3306"
...

でまた、settings.pyあなたがポートに接続するmysql_db:3307ので、ポート3306をデフォルトに変更します。

あなたが使用してローカルホスト、その後settings.pyコネクト上のいくつかの他のポートへのデータベースポートを露出させた場合でもmysql_dbネットワークをので、あなたはDjangoの設定で、このポートを変更しないでください。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25032&siteId=1