我有一个看起来像这样的docker-compose.yml:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql2
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wptest
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
volumes:
- ./site/:/var/www/html/
- ~/playground/certs/:/etc/ssl/certs/
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
它可以正常工作,我的wordpress安装也很好-混合中有一个自签名证书。因此,当我尝试更新我的wordpress安装或其他内容时,它会失败(与插件相同)。
如果我进入容器的bash外壳并运行update-ca-certificates
,它将找到我的密钥并安装它们,然后我就可以毫无问题地运行更新。
我的问题是-我可以自动执行此操作,以便它在容器启动后自动插入我的证书并运行命令,同时仍然允许我使用docker-compose up
吗?
答案 0 :(得分:0)
您可以创建一个简单的Dockerfile,该文件从wordpress映像中提取,并添加RUN命令以及您想要执行的操作。
FROM wordpress:latest
RUN your-command-here
然后更改您的docker-compose以使用此新图像代替官方wordpress图像,可能类似于: (注意构建参数)
wordpress:
volumes:
- ./site/:/var/www/html/
- ~/playground/certs/:/etc/ssl/certs/
depends_on:
- db
build:
context: .
dockerfile: ./Dockerfile
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress