私はdocker-composeの初心者です。私はdjangoインスタンスとmysqlデータベースを持つドッカーを持っています。最初のドッカーの実行時にのみコマンドを実行する自己自動コンテナを作成したいと思います。このコマンドでは、私は次のタスクを実行したいと思います:docker-composeでdjangoアプリを起動する
- すると、このシステムべき後のadminスーパー
- インポートデータベースにMySQLのバックアップ
を作成する最初のデータベースの移行
docker-composeに最初に実行されたコマンドを実行するよう指示する方法はありますか?また、システムが既に設定され更新されているかどうかをdjangoで制御する方法はありますか?
FROM python:3.4
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
####################
version: '2'
services:
db:
image: "mysql:5.6"
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: xxxxxx
MYSQL_DATABASE: xxxxxx
MYSQL_USER: xxxxx
MYSQL_PASSWORD: xxxxxxx
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
ありがとう:ここに明確にするために
は私dockfileとドッキングウィンドウ-compose.ymlです。
これらのコマンドを実行するために独自のDockerファイルをロールバックすることができます –
@ cricket_007 dockerfileからの独立イメージとしてデータベースを使用しているため、dockerfileの単純な変更が機能するかどうかはわかりません。 – rdiaz82
私はそれを理解しています。私はあなたのスクリプトとインポートを実行するレイヤーと(別にdjangoから)データベースコンテナを作ると言っていた。イメージを作成した後、Dockerは実際には「何かを1回だけ実行する」(つまりステートフルになる)ようには設計されていません。少なくとも、それは私の経験です –