参考文献:Jenkins与Docker的自动化CI/CD实战【附源码】_李振良_阿良_51CTO博客
遇到的问题:
1、我们使用的jdk放置了微信专用的jar。所以自己建了一个基础镜像,参考文献:Docker:JDK镜像制作_陌生谁家年少-CSDN博客_制作jdk镜像
2、同一台机器部署多个docker时 隐射的日志目录不能相同,所以我们按端口号建立了文件夹
3、自学 Dockerfile 命令 docker 命令(注意: RUN 制作镜像时运行 CMD 容器启动时运行,docker run 命令参数熟练运用 )
4、网络问题容器ip注册到nacos上后,dubbo无法调用到,使用宿主机的网络 docker run --network host
5、容器和宿主机时间不同
ENV TZ=Asia/Shanghai
6、日志乱码问题构建文件 加入
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
相关代码:
1、自定义jdk基础镜像文件Dockerfile
FROM centos:7 MAINTAINER linxk ADD jdk8211.tar.gz /usr/local ENV JAVA_HOME /usr/local/jdk1.8.0_211 ENV JRE_HOME /usr/local/jdk1.8.0_211/jre ENV PATH $JAVA_HOME/bin:$PATH
2、构建服务镜像并上传私有镜像仓库、清理历史镜像
REPOSITORY=106.54.153.203:5000/cif${port} # 构建镜像 cat > Dockerfile << EOF FROM jdk-8u211:v1 MAINTAINER linxk ENV VERSION=8.5.39 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV TZ=Asia/Shanghai ENV ip=$(ip addr |grep inet |grep -v inet6 |grep eth0|awk '{print }' |awk -F "/" '{print }') COPY cif-service/target/cif.jar /opt CMD sed -i "s/127.0.0.1/$ip/g" /etc/hosts CMD java -jar -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:ErrorFile=/var/logs/cif/hs_err_pid%p.log -Xloggc:/var/logs/cif/gc.log -XX:HeapDumpPath=/var/logs/cif -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumponOutOfMemoryError -XX:+PrintCommandLineFlags -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC /opt/cif.jar >/dev/null --server.port=${port} --spring.profiles.active=${active} --dubbo.application.qos.port=-1 EOF docker build -t $REPOSITORY . # 上传镜像 docker push $REPOSITORY echo ---------------Clear-Images...------------------ clearImagesList=$(docker images -f "dangling=true" -q) if [ ! -n "$clearImagesList" ]; then echo "no images need clean up." else docker rmi $(docker images -f "dangling=true" -q) echo "clear success." fi
3、执行目标服务器关闭容器,拉取最新镜像,启动容器
REPOSITORY=106.54.153.203:5000/cif${port} # 部署 docker rm -f cif${port} docker rmi $REPOSITORY # -p ${port}:${port} docker run -d --name cif${port} --network host -v /var/logs/cif/${port}/:/var/logs/cif/ $REPOSITORY
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)