一:构建docker-compose.yml文件
version: '3' services: mysql.db: container_name: mysql.db image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: xxxxx command: --lower_case_table_names=1 #--initialize-insecure volumes: - /home/mysql/:/var/lib/mysql ports: - 3306:3306 dotnetapi: container_name: dotnetapicontains build: . depends_on: - mysql.db links: - mysql.db reverse-proxy: container_name: reverse-proxy image: nginx depends_on: - dotnetapi ports: - "5002:5002" volumes: - ./proxy.conf:/etc/nginx/conf.d/default.conf
其中定义了三个服务:
- myql.db:使用mysql镜像,并挂载当前项目下的/home/mysql/文件夹来持久化存储,参数顺序一定不要乱,不然会入坑。,
--lower_case_table_names=1数据库忽略大小写
- dotnetapi:基于当前项目构建的容器服务,依赖于mysql.db服务。
- reverse-proxy:使用nginx定义反向代理服务,其中挂载了当前项目下的proxy.conf文件作为反向代理配置文件。其中proxy.conf的配置如下(注意proxy_pass指定的url为http://dotentapi:5002)
二:构建proxy.conf文件
server { listen 5002; location / { proxy_pass http://dotnetapi:5002; } }
三:使用docker-compose命令发布
docker-compose up -d #后台运行
docker-compose up