微服务模块部署到Docker

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}"]

微服务模块部署到Docker_第1张图片

2.在IDEA右上角,Edit Configurations
微服务模块部署到Docker_第2张图片
Server配置:
微服务模块部署到Docker_第3张图片

配置完成后点击Apply应用。

3.在pom.xml中配置:

<build>
	<plugins>
    	<plugin>
        	<groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <executions>
            	<execution>
                	<phase>packagephase>
                    <goals>
                    	<goal>repackagegoal>
                    goals>
                execution>
            executions>
        plugin>
     plugins>
build>

4.选择指定部署模块分别执行下面命令,执行完之后,在target文件夹下,会有一个对应的jar包.

mvn clean
mvn compile
mvn package

5.,将生成的jar包复制到docker文件夹下,最后执行第二步中配置的运行项,部署成功后:
微服务模块部署到Docker_第4张图片
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。

你可能感兴趣的:(微服务,docker,intellij-idea)