从码头中的CMD传递参数
问题描述:
我有下面的Dockerfile。从码头中的CMD传递参数
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/akamai
WORKDIR /usr/src/akamai
# Install app dependencies
COPY package.json /usr/src/akamai/
RUN npm install
# Bundle app source
COPY . /usr/src/akamai
#EXPOSE 8080
CMD ["node", "src/akamai-client.js", "purge", "https://www.example.com/main.css"]
下面是我从CMD运行搬运工图像之后建立
docker run -it "akamaiapi" //It executes the CMD command as given in above Dockerfile.
CMD [ “节点”, “SRC/Akamai的-client.js” “吹扫”命令, “https://www.example.com/main.css”] //我想从泊坞窗命令Dockerfile而不是硬编码的直接传递这两种说法,所以我多克尔运行的命令可能是这样的:
docker run -it "akamaiapi" queue
docker run -it "akamaiapi" purge "https://www.example.com/main.css"
docker run -it "akamaiapi" purge-status "b9f80d960602b9f80d960602b9f80d960602"
答
您可以通过combination of ENTRYPOINT
and CMD
来完成此操作。
ENTRYPOINT
指定在容器启动时总是执行的命令。CMD
指定将被输入到ENTRYPOINT
的参数。
所以,用Dockerfile
:
FROM node:boron
...
ENTRYPOINT ["node", "src/akamai-client.js"]
CMD ["purge", "https://www.example.com/main.css"]
运行的容器的默认行为:
docker run -it akamaiapi
会像命令:
node src/akamai-client.js purge "https://www.example.com/main.css"
如果你这样做:
docker run -it akamaiapi queue
在容器中的底层执行将是这样的:
node src/akamai-client.js queue