some steps:
------> (1)
write django Dockerfile under your project root dir such as:
FROM ubuntu:latest
RUN apt-get -y update
RUN apt-get install -y python3
RUN apt-get install -y python3-dev
RUN apt-get install -y python3-pip
RUN apt-get install -y python3-setuptoolsRUN apt-get install -y libmysqlclient-dev
RUN mkdir /kyzs
WORKDIR /kyzsADD . /kyzs
RUN pip3 install -r requirements.txt
EXPOSE 80 8080 8000 9000
ENV SPIDER=/kyzs
write requirement.txt which is refer to your project such as (same dir as Dockerfile):
django
pymysql
numpy
nltk
pillow
write start.sh which is the door of your project such as (same dir as Dockerfile):
python3 manage.py makemigrations &&
python3 manage.py migrate &&
python3 manage.py runserver 0.0.0.0:8000
----> (2)
write docker-compose.yml which located at the same dir with your project root dir: the content is below
version: '3'
services:
db:
image: mysql:5.6
restart: always
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0
expose:
- "3306"
volumes:
- ./db:/var/lib/mysql:rw
environment:
- MYSQL_DATABASE=kyzs
- MYSQL_ROOT_PASSWORD=123
web:
build: ./kyzs
command: bash start.sh
volumes:
- ./kyzs:/kyzs
ports:
- "8000:8000"
links:
- db
depends_on:
- db
restart: always
------> (3) some tips
dir as below
kyzs ---
docker-compose.yml
db (exist at the content of "docker-compose")
kyzs------
Dockerfile
start.sh
requirements.txt
you should modify the django settings about the db module example as below:
ALLOWED_HOSTS = ["*",]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'kyzs',
'USER':'root',
'PASSWORD':'123',
'HOST':'db',
'PORT':'3306',
#os.path.join(BASE_DIR, 'db.sqlite3')
}
}I should remind you that mysql:latest or mysql 8.0 maybe have some bug and I not recommand to you
my ubuntu has no chinese-pin so I just record in eng , just for record and just for me......