寫Dockerfile可以先不指定CMD、ENTRYPOINT等啟動命令,只要拷貝就好了
如下:
# Dockerfile for basic-app-client # Build with: # docker build -t basic-app-client:1.2.2-jdk7 . # Run with: # docker run -di --name basic-app-client basic-std-etl-client:1.2.2-jdk7 FROM openjdk:7-jre-alpine MAINTAINER haokailin <haokailin@umfintech.com> ENV VERSION 1.2.2 RUN \ echo "http://mirrors.aliyun.com/alpine/v3.8/main" > /etc/apk/repositories && \ echo "http://mirrors.aliyun.com/alpine/v3.8/community" >> /etc/apk/repositories && \ apk update upgrade && \ apk add --no-cache procps curl bash && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone ADD app /usr/mpsp/app #CMD ["/usr/mpsp/app/script/serv.sh","console"]
先注釋掉CMD啟動命令,打包鏡像app,然后用sh命令啟動並進入容器,
docker run -ti basic-app-client:1.2.2.2-jdk7 sh # 進入容器后,再執行啟動腳本,調試。
進入容器后,再啟動應用的啟動腳本,調試即可。
非常適用於docker log日志查看報錯信息 不明確的情況,
如 exec user process caused "no such file or directory,這種報錯。