【发布时间】:2022-02-03 01:28:56
【问题描述】:
我正在尝试使用适用于 ci/cd 的应用程序在 DigitalOcean 上部署 docker 映像(Nginx + Laravel + MySQL)。
现在,Docker 映像位于我的 Github 存储库中,我将其设置为“公共”。
当我测试要从 DigitalOcean Droplets 部署到 Ubuntu 服务器上的 docker 映像时,一切都很好。
但是当我尝试在 DigitalOcean 的 App 上部署它时,我并不完全知道我是如何设置“HTTP 端口”和“命令”的,我认为这就是为什么即使构建成功也部署失败的原因。
我认为 docker-compose 没有任何问题,因为它在 ubuntu 服务器上运行良好。
docker-compose.yml
version: "3.7"
services:
nginx:
image: nginx:stable-alpine
container_name: nginx
ports:
- "80:80"
volumes:
- ./src:/var/www
- ./nginx:/etc/nginx/conf.d
depends_on:
- app
networks:
- app_network
app:
container_name: laravel
build:
context: .
args:
- uid=1000
- user=www
dockerfile: Dockerfile
volumes:
- ./php:/usr/local/etc/php/conf.d
working_dir: /var/www
ports:
- "9000:9000"
env_file:
- .docker.env
depends_on:
- db
restart: unless-stopped
networks:
- app_network
links:
- db:mysql
db:
image: mysql:8.0
container_name: db
restart: unless-stopped
ports:
- "3307:3306"
env_file:
- .docker.env
command: ['--default-authentication-plugin=mysql_native_password']
networks:
- app_network
volumes:
- ./database:/docker-entrypoint-initdb.d
- ./mysql/my.cnf:/etc/mysql/my.cnf
volumes:
database:
driver: local
networks:
app_network:
driver: bridge
【问题讨论】:
标签: docker digital-ocean