docker - 在Packer的Docker Build中相当于DockerFile的CMD

标签 docker dockerfile packer

我有一个打算在Docker容器中运行的节点应用程序。我正在使用打包程序来构建镜像,因此没有使用Dockerfile。我想在运行容器时默认启动节点应用程序。 DockerFile具有“CMD”来实现这一点。我在Packer的文档中找不到与此相关的任何内容(即指定Packer builder json的后期处理)。谷歌搜索最终找到了像https://github.com/cornfeedhobo/packer-post-processor-docker-dockerfile这样的插件(其中提到打包程序倾向于支持它)

我敢肯定有人在docker上使用packer之前就遇到过这种情况。有任何线索如何在打包程序的docker构建中具有与DockerFile等效的CMD吗?

最佳答案

您应该使用changes

{ 
  "type": "docker", 
  "image": "ubuntu",
  "commit": true,
  "changes": [
    "CMD [\"nginx\", \"-g\", \"daemon off;\"]",
    "ENTRYPOINT /var/www/start.sh"
    ]
 }

参见this example in the docs

关于docker - 在Packer的Docker Build中相当于DockerFile的CMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48717326/

相关文章:

Docker:在 CMD 的 shell 脚本中运行 init 和 systemctl 时出错

node.js -/bin/sh : 1: [“npm” ,:在 docker-compose up 上找不到

docker - 在 docker-compose 中构建图像时出现多个 Dockerfile 失败

linux - Docker 不下载推荐的包

postgresql - 如何使用 docker-compose up-down-up 进行持久存储?

docker - 通过 Docker 发布的端口——无法连接

linux - 开发人员云服务和 Packer 构建因 HTTP 401 未授权而失败?

amazon-web-services - Packer:从正在运行的 EC2 实例生成 AMI

Docker:通过 IP 地址引用注册表

vagrant - 如何使用 packer 从 vmware 镜像创建一个 vagrant box