微服务容器化改造说明文档
一、主旨:存量项目未修改代码使项目可打包成镜像方式的以及所有新项目请参照本说明书进行修改。后续在开发测试环境部署新项目都采用容器化部署。
二、具体内容:要将微服务容器化需要修改pom.xml文件和新增src/main/dokcer/Dockerfile文件。
具体修改如下:
2.1. pom.xml文件修改
1.在<properties>下添加镜像仓库的路径的自定义属性
<aliyun-sdk-oss.version>3.3.0</aliyun-sdk-oss.version> <docker.repostory>registry.cn-shenzhen.aliyuncs.com</docker.repostory> <docker.registry.name>xxxx_microservices</docker.registry.name>
2.在 <build></build>下添加打包上传到镜像仓库的配置
<!-- 使用maven 配置构建 --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <dockerDirectory>target/docker</dockerDirectory> <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}-${profileActive}</imageName> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> <serverId>docker-aliyun</serverId> <registryUrl>${docker.repostory}</registryUrl> <pushImage>true</pushImage> </configuration> </plugin>
3.在 <resources></resources>添加以下配置:
<!-- 使用@@站位符,输出Dockerfile至docker文件夹 --> <resource> <directory>src/main/docker</directory> <filtering>true</filtering> <includes> <include>**/Dockerfile</include> </includes> <targetPath>../docker</targetPath> </resource>
2.2. 添加Dockerfile文件
在src/main下创建新目录docker,在目录下新增文件Dockerfile,内容如下:
ARG activenv FROM java:8-jre ENV arch @[email protected] ENV prg @[email protected] ENV JAVA_OPTS="-Xms512m -Xmx512m" #ENV activenv="" EXPOSE 8084 RUN mkdir -p /vol1/appserver/$arch WORKDIR /vol1/appserver/$arch #VOLUME /vol1/logs ADD $prg . #设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN sh -c echo 'Asia/Shanghai' >/etc/timezone #ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar"] ENTRYPOINT [ "sh", "-c", "java -Dfile.encoding=utf-8 $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar $prg > /dev/null 2>&1" ]
----------------------------------------------------------------------------------
附: 打包镜像的命令:将会给镜像打上tag并推送到在pom.xml里面设置的镜像仓库
mvn clean package -P dev docker:build -DdockerImageTags=$JOB_NAME$BUILD_NUMBER