我正在尝试创建一个单独的docker-compose用于生产,目前我只有一个compose文件用于本地开发,但是要制作一个用于生产的文件,我不知道要删除什么属性{{1 }}和volumes
我当前的开发者撰写文件如下:
ports
答案 0 :(得分:3)
确切的列表将取决于您的环境/运维团队的要求,但这除了端口/现有卷之外似乎还有用:
网络
默认网络可能不适用于您的产品环境。 例如,您的运营团队可能决定将nginx / php-fpm / mariadb放在不同的网络中,例如以下示例(https://docs.docker.com/compose/networking/#specify-custom-networks),甚至使用预先存在的网络
Mysql配置
它们通常位于单独的目录中,即/etc/my.cnf
和/etc/my.cnf.d
。
在prod / dev之间,这些配置可能会有所不同。
在您的卷路径中看不到
Php-fpm7
还没有使用php-fpm7
,但是在php-fpm5
中,它还有一个包含配置文件(/etc/php-fpm.conf
和/etc/php-fpm.d
)的文件夹,而该文件夹在您的卷中丢失。这些文件也可能会有所不同,即使您处理中等负载(您需要配置工作程序数量/超时等)
Nginx
与php-fpm
相同,ssl设置/主机名/域配置可能不同
记录
考虑哪种日志记录驱动程序可能最适合您的需求。 来自here:
Docker包含多种日志记录机制来帮助您获得 来自运行中的容器和服务的信息。这些机制是 称为日志记录驱动程序。
您可以在docker-compose中轻松配置它,下面的示例显示一个专用的fluentd
容器进行记录:
version: "3"
services:
randolog:
image: golang
command: go run /usr/src/randolog/main.go
volumes:
- ./randolog/:/usr/src/randolog/
logging:
driver: fluentd
options:
fluentd-address: "localhost:24224"
tag: "docker.{{.ID}}"
fluentd:
build:
context: ./fluentd/
ports:
- "24224:24224"
- "24224:24224/udp"
答案 1 :(得分:1)
您应遵循Use Compose in production documentation:
您可能需要更改应用程序配置才能进行配置 准备生产。这些更改可能包括:
- 删除应用程序代码的所有卷绑定,以使代码保留在容器内,并且不能从外部更改
- 绑定到主机上的不同端口
- 以其他方式设置环境变量,例如当您需要减少日志记录的冗长性或启用电子邮件发送时)
指定诸如
restart: always
之类的重启策略来避免停机添加其他服务,例如日志聚合器