我是新手在碼頭構成和我有一個碼頭與我的Django實例和MySQL數據庫。我想創建一個自動配置的容器,它只在第一次碼頭運行時運行命令。在此命令,我想執行以下任務:初始化Django應用程序與碼頭構成
- 進行初始數據庫遷移
- 創建管理員超級用戶
- 導入一個MySQL備份到數據庫
該系統後應繼續啓動django測試網絡服務器。
有沒有什麼辦法可以告訴docker-compose在第一次運行時運行命令還是在django中有任何替代方法來控制系統是否已經配置和更新?
爲了澄清這裏是我的dockfile和碼頭工人,compose.yml:
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
感謝。
你可以推出你自己的Dockerfile來運行這些命令 –
@ cricket_007我真的不知道dockerfile的一個簡單修改是否會起作用,因爲我使用數據庫作爲我的django中的獨立映像。 – rdiaz82
我明白這一點。我在說你用一個運行腳本和導入的圖層來創建數據庫容器(與django分開)。在你擁有一張圖片之後,Docker並不是真的被設計成「只運行一次」(即是有狀態的)。至少,這是我的經驗 –