dee*_*zen 30 docker docker-compose
在我的docker compose文件中有一个动态字段,我想在运行期间生成它.实际上它是一个字符串模板:
environment:
- SERVER_URL:https://0.0.0.0:${PORT}
Run Code Online (Sandbox Code Playgroud)
我想PORT动态配置此参数
docker-compose run <service> PORT=443
Run Code Online (Sandbox Code Playgroud)
在文档中有ARGS参数集我想我可以使用.但是没有信息我如何在compose文件中使用它们
dzo*_*f31 27
在docker-compose中,参数可用且仅在其中有用dockerfile.您可以在下面的级别中指定您正在执行的操作,如下所示:
#dockerfile
ARG PORT
ENV SERVER_URL "https://0.0.0.0:$PORT"
Run Code Online (Sandbox Code Playgroud)
您的端口可以在docker-compose.yml中设置:
build:
context: .
args:
- PORT=443
Run Code Online (Sandbox Code Playgroud)
在任何情况下,它实际上都是一个环境变量.如果适合您,您可以通过运行命令传递它:
PORT=443 docker-compose run <service>
#or
docker-compose run <service> -e PORT=443
Run Code Online (Sandbox Code Playgroud)
小智 15
您可以在使用docker-compose build时使用该标志
docker-compose build --build-arg PRODUCTION=VALUE
Run Code Online (Sandbox Code Playgroud)
在Dockerfile中,您可以获取参数PRODUCTION
# Dockerfile
ARG PRODUCTION
FROM node:latest
Run Code Online (Sandbox Code Playgroud)
jos*_*ode 11
这可以通过docker stack 部署来实现
您的环境部分中的示例撰写文件:
- MY_VARIABLE_NAME=${MY_VARIABLE_VALUE}
Run Code Online (Sandbox Code Playgroud)
Stack Deploy 命令(我从 Windows 中的 Gitbash 运行此命令):
MY_VARIABLE_VALUE=some-value docker stack deploy --compose-file compose_file_here stackname
Run Code Online (Sandbox Code Playgroud)
参考请参阅此处的 Github 帖子
分享我使用最少的设置和命令更改使用 Docker Compose 设置运行时变量的唯一方法。
在docker-compose.yml:
services:
my_service:
...
environment:
- MYENVVAR=placeholder_value
Run Code Online (Sandbox Code Playgroud)
在终端上:
docker-compose run -e MYENVVAR=actual_value my_service
Run Code Online (Sandbox Code Playgroud)
请注意,命令行参数的“-e”部分必须位于服务名称之前。
官方文档对此进行了描述:使用 docker compose run 设置环境变量
| 归档时间: |
|
| 查看次数: |
37808 次 |
| 最近记录: |