我使用docker compose来设置payara服务器并需要覆盖domain.xml文件。我目前正在通过
进行此操作 volumes:
- './domain.xml:/opt/payara41/glassfish/domains/domain1/config/domain.xml'
但当我用docker-compose up
撰写它时,它一直说它无法将domain.xml重命名为domain.xml.bak。有什么方法可以获得覆盖它的权限或确保重命名有效吗?
答案 0 :(得分:3)
这样的事情应该有效:
command: sh -c 'cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml && YOUR_PREVIOUS_COMMAND'
volumes:
- ./domain.xml:/tmp/domain.xml
或者编辑当前的command
(或CMD
),如果它是一个脚本,请在副本前面添加。
编辑:此替代方案非常方便和优雅。
command: sh /run-from-compose.sh
volumes:
- ./domain.xml:/tmp/domain.xml
- ./run-from-compose.sh:/run-from-compose.sh
run-from-compose.sh:
#!/bin/sh
cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml
YOUR_PREVIOUS_COMMAND
您不需要修改图片,只需安装充当command
的自定义脚本。