如何在docker-compose up命令行传递command参数,避免硬编码到yml文件?
动态传递Docker Compose的command参数
原始配置文件
version: "3.8" services: server: image: node:lts-slim container_name: example-container hostname: example-server ports: - 4000:4000 working_dir: /server volumes: - ./someLocalDirectory:/server command: node --watch index.js
问题描述
通过docker-compose up -d server启动容器时,希望避免将command: node --watch index.js硬编码在配置文件中,能否通过命令行参数传递该command值?
解决方案
可以通过环境变量的方式实现动态传递:
1. 修改docker-compose.yml配置
将硬编码的command替换为变量引用:
version: "3.8" services: server: image: node:lts-slim container_name: example-container hostname: example-server ports: - 4000:4000 working_dir: /server volumes: - ./someLocalDirectory:/server command: ${RUN_COMMAND}
2. 命令行启动时传递参数
在启动命令前设置环境变量,再执行docker-compose up:
RUN_COMMAND="node --watch index.js" docker-compose up -d server
内容的提问来源于stack exchange,提问作者cl10k
相关产品推荐
相关产品推荐

