创建 docker-compose.yml
文件,这里需要主要了,很多地方目录跟官方的目录是不一样的
vim docker-compose.yml
# docker version: 18.06.0+
# docker-compose version: 1.23.2+
# OpenSSL version: OpenSSL 1.1.0h
version: "3.7"
services:
web:
image: alenx/walle-web:2.1
container_name: walle-nginx
hostname: nginx-web
ports:
# 如果宿主机80端口被占用,可自行修改为其他port(>=1024)
# 0.0.0.0:要绑定的宿主机端口:docker容器内端口80
# 第一个不同,本地80端口被占,只能选择8081端口
- "8081:80"
depends_on:
- python
networks:
- walle-net
restart: always
python:
image: alenx/walle-python:2.1
container_name: walle-python
hostname: walle-python
env_file:
# walle.env需和docker-compose在同级目录
- ./walle.env
command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration && python waller.py"
expose:
- "5000"
volumes:
# 第二个不同,挂载的宿主机目录不同
- /usr/local/docker/walle/walle_home/plugins/:/opt/walle_home/plugins/
- /usr/local/docker/walle/walle_home/codebase/:/opt/walle_home/codebase/
- /usr/local/docker/walle/walle_home/logs/:/opt/walle_home/logs/
# 第三个不同,mac的.ssh目录不在/root下,而是在 /Users/adminstror
- /Users/adminstror/.ssh:/root/.ssh/
depends_on:
- db
networks:
- walle-net
restart: always
db:
image: mysql
container_name: walle-mysql
hostname: walle-mysql
env_file:
- ./walle.env
command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
# 第四个不同,mysql映射端口是3307
- "3307:3306"
expose:
- "3306"
volumes:
# 第五个不同,mysql挂载的目录不同
- /usr/local/docker/walle/mysql:/var/lib/mysql
networks:
- walle-net
restart: always
networks:
walle-net:
driver: bridge