docker-compose自动化部署django项目
Dockerfile是为了自定义构建镜像
docker-compose.yml 可同时运行多个镜像,并且指定镜像间的相互依赖关系
安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装docker-compse
pip3 install docker-compose
删除容器
docker-compose rm -f
docker rmi image-id
create database django default charset=utf8;
构建一个Django的Dockerfile
FROM python:3.6
RUN apt-get install -y nginx
RUN pip3 install uwsgi
RUN pip install -r /config/requirement.txt
WORKDIR /src
构建一个web+mysql的docker-compose文件
version: '2'
services:
web:
environment:
- DJANGO_SETTINGS_MODULE=django.settings_docker
restart: always
build: .
container_name: aqqzw_web
command: bash -c "cd /root/django/ && python manage.py makemigrations && python manage.py migrate && uwsgi --ini ./docker/uwsgi.ini && /etc/init.d/nginx start && tail -f /var/log/nginx/error.log"
depends_on:
- db
volumes:
- /usr/local/django/:/root/django/
- /usr/local/django.conf:/etc/nginx/conf.d/django.conf
ports:
- "8000:80"
stdin_open: true
tty: true
db:
image: mariadb:10.2
container_name: mariadb
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
volumes:
- ../my.cnf:/etc/mysql/my.cnf
- /data/mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_USER=root
- MYSQL_DATABASE=django
运行docker-compse
docker-compose up