我是Docker的新手。 devop同事在github存储库中创建了一个WSO2 docker镜像。他使用这些图像来创建临时和生产实例。
docker-compose.yml
是:
#openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt
version: '2'
services:
mysql:
image: mysql:5.7.10
ports:
- "3306:3306"
volumes:
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=userdb
- MYSQL_USER=dbwso2am
- MYSQL_PASSWORD=dbwso2am
- MYSQL_ROOT_PASSWORD=dbwso2am
wso2am:
image: salte/wso2am:1.9.1
depends_on:
- mysql
volumes:
- ./keys:/keys
environment:
- VIRTUAL_HOST=apimanager.qa.xxx.build
- VIRTUAL_PORT=9443
- VIRTUAL_PROTO=https
- OFFSET=3
- EXTERNAL_HOSTNAME=apimanager.qa.xxx.build
- DATABASE_HOSTNAME=mysql
- DATABASE_PORT=3306
- DATABASE_USER=dbwso2am
- DATABASE_PASSWORD=dbwso2am
- PUBLIC_CERTIFICATE=/keys/domain.crt
- PRIVATE_KEY=/keys/domain.key
- PRIVATE_KEY_PASSWORD=wso2am
- ADMIN_PASSWORD=admin
我想修改一些xml
文件中存储的WSO2 configuration并将其推送到生产环境。
我该怎么办?这可能吗?我应该修改泊坞窗图像吗?如果有,怎么样?或者我应该在经典的github存储库中安装WSO2,修改那里的xml
并根据此存储库的内容重新创建一个docker镜像?
答案 0 :(得分:1)
您不需要为了更改一个xml而重新创建整个图像。 您可以通过卷或命令替换它。 例如,我已链接共享文件夹,您可以在容器上运行命令。 假设你在/ home / share中有Share文件夹,并且它链接到/ c / Share 因此,您将新的xml文件放在Share中,容器也可以看到它。 接下来运行此命令:
docker exec a5866aee4e90 cp -i /home/share/some.xml /home/the/path/you/chose
Docker exec用于运行命令。 您可以进入控制台并使用以下命令运行多个命令:
docker exec -it a5866aee4e90 bash
答案 1 :(得分:0)
docker cp
:https://github.com/docker/docker/pull/6580
步骤(假设您需要修改现有的配置文件。如果没有,则从步骤2开始):
docker cp
,简单的控制台窗口复制粘贴,卷共享)docker cp
在诉诸此方法之前,请始终尝试通过环境变量应用修改。如果那是不可能的,那么你必须恢复编辑。