无法在docker compose中覆盖文件

时间:2017-06-06 12:02:19

标签: docker docker-compose payara

我使用docker compose来设置payara服务器并需要覆盖domain.xml文件。我目前正在通过

进行此操作

volumes: - './domain.xml:/opt/payara41/glassfish/domains/domain1/config/domain.xml' 但当我用docker-compose up撰写它时,它一直说它无法将domain.xml重命名为domain.xml.bak。有什么方法可以获得覆盖它的权限或确保重命名有效吗?

1 个答案:

答案 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的自定义脚本。