在 DigitalOcean 上部署 docker 映像(部署错误)
Deploy docker image on DigitalOcean (Deploy Error)
我正在尝试使用 ci/cd.
的应用程序在 DigitalOcean 上部署 docker 图像(Nginx + Laravel + MySQL)
现在,Docker 图像在我的 Github 存储库中,我将其设置为“Public”。
当我测试要从 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 上使用 laravel 图片,那么这是我的解决方案
将 Http 端口设置为“80”并将命令设置为 php artisan serve --host 0.0.0.0 --port 80
我正在尝试使用 ci/cd.
的应用程序在 DigitalOcean 上部署 docker 图像(Nginx + Laravel + MySQL)
现在,Docker 图像在我的 Github 存储库中,我将其设置为“Public”。
当我测试要从 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 上使用 laravel 图片,那么这是我的解决方案 将 Http 端口设置为“80”并将命令设置为 php artisan serve --host 0.0.0.0 --port 80