无法覆盖Docker中的文件撰写

Wou*_*ter 5 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。有什么办法可以获取覆盖它的权限或确保重命名有效?

Rob*_*ert 6

像这样的东西应该有效:

command: sh -c 'cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml && YOUR_PREVIOUS_COMMAND'
volumes:
   - ./domain.xml:/tmp/domain.xml
Run Code Online (Sandbox Code Playgroud)

或者编辑当前的command(或CMD)(如果它是脚本),并在副本前面添加。


编辑:这个替代方案非常方便和优雅。

command: sh /run-from-compose.sh
volumes:
   - ./domain.xml:/tmp/domain.xml
   - ./run-from-compose.sh:/run-from-compose.sh
Run Code Online (Sandbox Code Playgroud)

从 compose.sh 运行:

#!/bin/sh
cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml

YOUR_PREVIOUS_COMMAND
Run Code Online (Sandbox Code Playgroud)

您不需要修改映像,只需安装充当command.