今天带两个供应商干活,以这俩人的踩坑记录把dockfile初学者可能会犯的错误罗举一下

  1. from,一定要写基础镜像(没错就是这么难绷
  2. run后面不要使用交互式的命令,如vim\不加-y的yum
  3. copy,复制的时候注意dockerfile和目标文件的层级关系,最好同级
  4. copy,如果想复制一整个文件夹,包括他自己本身,那么目的目录应该在结尾以这个文件夹的文件名为结尾,不然默认只复制文件夹里面的东西
  5. cmd,cmd是镜像启动的后执行的命令,把运行服务的命令写在run里面是没用的
  6. cmd或者run的时候要注意对应文件的权限问题,以及所使用的shell的区别
  7. 容器判断该容器是否结束退出,是通过cmd是否执行并打印0退出来判断的,不是通过后台是否有进程来决定的。如果cmd用java跑个程序那还好,如果是通过一个脚本来启动一个java程序,那么只要这个脚本被成功运行并退出了,哪怕java程序还在运行,容器也会觉得这个容器已经结束了。所以如果是通过脚本来启动服务,最好后面跟个死循环的命令,随你tail -f或者sleep睡个天荒地老都行
  8. 在cicd跑的时候注意代码文件有没有传全
  9. 最好把run一条用&&拼凑写完,run越多镜像的层数越多,构建出来的镜像越大
  10. 哪怕切了目录,也得用绝对路径

标签: none

添加新评论