1.在微服务的模块下,与src
文件夹同级,新建docker文件夹,并在该文件夹中,新建文件Dockerfile。Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
其内容如下:
FROM openjdk:11 #FROM+基于镜像
MAINTAINER **** #维护者信息
# 设置时区,构建镜像时执行的命令
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
WORKDIR /home/xingtu
# 复制jar包
COPY *.jar /home/xingtu/app.jar
# 统一启动端口
ENV PARAMS = "--server.port=9204"
EXPOSE 9204
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
2.在IDEA右上角,Edit Configurations
Server配置:
配置完成后点击Apply应用。
3.在pom.xml中配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
4.选择指定部署模块分别执行下面命令,执行完之后,在target文件夹下,会有一个对应的jar包.
mvn clean
mvn compile
mvn package
5.,将生成的jar包复制到docker文件夹下,最后执行第二步中配置的运行项,部署成功后:
6.问题
6.1在启动过程中,报错:
failed to deploy 'XXXX Dockerfiler'...:Not connect to docker
解决办法:先确保自己的Dockerfile配置没有问题,确认配置文件没有问题还是报这个错的话,就关闭IDEA,然后以管理员身份运行IDEA。
6.2执行Dockerfile时,报错:
Failed to deploy 'XXX Dockerfile: XX/XXX/docker/Dockerfile': Can't retrieve image ID from build stream
解决办法:将docker文件夹中下多余的jar删除,只保留对应的微服务jar。