我想通过docker compose在我的docker容器中执行以下命令
cat <<EOT >> /config.toml
[[tls.certificates]]
certFile = "/etc/letsencrypt/live/example.site/fullchain.pem"
keyFile = "/etc/letsencrypt/live/example.site/privkey.pem"
EOT
下面是这个特定容器的基本Docker compose
container:
image: container-image
command:
- --api=true
- --dashboard=true
我想在这两个命令下面添加多行命令。如果是一个命令,我可以简单地使用- sh -c "echo 'single line command'"
但是在这个例子中我如何执行这个多行命令呢?
1条答案
按热度按时间sqxo8psd1#
你不会在Compose文件中运行这样的命令。
请记住,容器只运行一个命令,然后退出。例如,这使得使用
command:
创建配置文件变得困难,因为这将是容器所做的唯一事情。对于这种设置,正如注解中所指出的,这甚至更加复杂,因为command:
实际上是其他命令的参数列表。你可以对图像进行逆向工程,覆盖它的entrypoint:
,但这很快就会变得非常复杂。由于您只是尝试提供一个静态配置文件,因此应该在主机上创建它,并使用Compose
volumes:
通过绑定挂载注入它。看起来您正在尝试将内容附加到现有配置,因此您可能需要从提取现有配置开始。