java的微服务,用docker-compose构建镜像、运行容器。在此过程中,需要调试。
1. 调试遇到的问题
以下是走过的弯路
- 认为需要容器保持运行,才能“登录”容器查看COPY ADD运行环境等
- 认为sh: can’t open ‘test.sh’: No such file or directory运行容器时错误,是文件COPY 或ADD或WORKDIR命令执行遇到错误
2. 调试Dockerfile
2.1 容器调试无需容器保持运行
docker image ls
看到构造的镜像,docker run -it <image-id> sh
可以登录到容器shell环境,即使没有进程让容器保持运行(通常认为容器需要有一个进程让它保持运行,才能登录)
[root@wonderland-01 project_name]# docker run -it aip/aip-gateway sh
/apprun/module-name/publish # cat /etc/shells 从文件内容看没有bash只有sh
# valid login shells
/bin/sh
/bin/ash
/apprun/module-name/publish # ls .
bash和sh的区别:
https://blog.youkuaiyun.com/wht1995316/article/details/115837282
2.2 COPY/ADD的shell脚本文件的bash不存在
Dockerfile运行容器
<