我的本地主机上有一个 docker 应用程序,它运行良好。我在上面运行 PHP、Nginx 和 Mariadb。
docker-compose.yml
包含此代码的文件:
version: '3'
services:
db:
build:
context: ./mariadb
volumes:
- "./.data/db:/var/lib/mysql"
- "./logs/mariadb:/var/log/mysql"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
networks:
- default
php-fpm:
build:
context: ./php7-fpm
args:
TIMEZONE: ${TIMEZONE}
volumes:
- ${APP_PATH}:/var/www/app
environment:
DB_HOST: db
DB_PORT: 3306
DB_DATABASE: ${MYSQL_DATABASE}
DB_USERNAME: ${MYSQL_USER}
DB_PASSWORD: ${MYSQL_PASSWORD}
depends_on:
- db
networks:
- default
nginx:
build:
context: ./nginx
args:
- 'php-fpm'
- '9000'
volumes:
- ${APP_PATH}:/var/www/app
- ./logs/nginx/:/var/log/nginx
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
networks:
- default
networks:
default:
driver: bridge
起初我以为只需要一个 compose 文件,当我构建镜像,将其推送到 docker hub,然后在我的生产服务器上拉取该镜像时,容器无法启动。
我做了一些阅读,有很多在线资源建议使用,从 1 到 4 个 docker 文件,并检查两个 git 分支......除此之外......
我知道我至少应该再创建一个名为 的文件docker-compose-prod.yml
,并且在该文件中,我应该省略volumes:
andport:
属性,但似乎没有明确的指南:
如何让docker在本地工作
确切地何时以及如何构建生产容器。
有人可以帮我解决这个问题吗?