通过命令行在 Docker 中更改 --commit CMD 时出错
Posted
技术标签:
【中文标题】通过命令行在 Docker 中更改 --commit CMD 时出错【英文标题】:Error in --commit CMD Change in Docker via command line 【发布时间】:2021-11-01 22:03:15 【问题描述】:我正在尝试将 spring boot java .jar 文件放入 openJDK 的 Image 中并在 docker 中提交更改,但 docker 命令似乎不起作用
我正在关注这篇文章的步骤:https://dzone.com/articles/docker-tutorial-for-beginners-with-java-and-spring
docker 期望哪个参数,我没有在命令中给出
docker container commit --change='CMD ["java","-jar","/tmp/mytroubleartifact-0.jar"]' upbeat_brahmagupta a-repo-name-of-choice/some-app-name:tagname2
【问题讨论】:
您以这种方式创建的图像将无法重现。如果 JVM 中存在严重的安全问题,并且您需要升级基础映像,您会记得一年后这个确切的docker commit
命令吗?最好创建一个 Dockerfile 并将其与您的应用程序一起签入到您的源代码树中。
【参考方案1】:
问题在于撇号 '
您应该使用撇号s(复数形式 - 也称为引号s)"
这个命令似乎对我有用
(无需代表您进行更改):
docker container commit --change="CMD ['java','-jar','/tmp/mytroubleartifact-0.jar']" upbeat_brahmagupta a-repo-name-of-choice/some-app-name:tagname2
虽然我看到其他人为我使用了一个撇号,但它也不适用于您的情况。 docker docs example 也不适用于仅复制 --change
部分,使用两个选项(-c
,--change
)并且仅使用其中一个选项,仅使用双引号就可以了,但不完全确定为什么。 (尝试替换名称,使它们更短¯_(ツ)_/¯)
docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a svendowideit/testimage:version4
感谢这些帖子的工作示例:
https://adamtheautomator.com/docker-commit/ https://docs.oracle.com/cd/E37670_01/E75728/html/ch04s18.html
【讨论】:
感谢将撇号 (') 更改为引号 (") docker container commit --change="CMD ["java","-jar","/tmp/mytroubleartifact-0.jar "]" xenodochial_goldwasser a-repo-name-of-choice/some-app-name:tagname2 很高兴听到它有帮助?以上是关于通过命令行在 Docker 中更改 --commit CMD 时出错的主要内容,如果未能解决你的问题,请参考以下文章