IDEA配合Docker插件进行一键部署

  1. 服务器装好Docker环境,并且开放docker端口且加密给外部访问
    参考:https://www.cnblogs.com/haoxianrui/p/15322508.html#1-docker-开启远程访问

  2. springboot 中进行配置
    多模块项目,在最外层的pom文件中进行 build 配置
    image

<build>
    <!--使打包的 jar 包名称就没有版本号-->
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skipTests>true</skipTests>    <!--默认关掉单元测试 -->
            </configuration>
        </plugin>
    </plugins>
</build>
  1. 编写 Dockerfile 配置文件
# 基础镜像
FROM openjdk:8-jre

# 维护者信息
MAINTAINER pzi<pzi@qq.com>

# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone

# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp

# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD msgdemoimpl/target/msgdemoimpl.jar app.jar

# 容器启动执行命令
ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]

# 声明容器提供服务端口
EXPOSE 8800

image
4. idea 中配置 docker
● 配置端口以及容器名字
image
这样的话,就会按照命令 docker -p -d 8800:8800 msgdemo:1.0 的方式启动镜像。

  1. 最后,直接运行即可将 jar 包成功部署到服务器

√ TODO 使用dockerfile部署一个jar包 并且测试能否跑通
踩坑:暴露端口后,还需要指定主机端口和容器端口的映射关系,这样才能正确访问接口

tips:
删除 docker images 中REPOSITORY 和 TAG 都为 none 的镜像
docker rmi $(docker images -f "dangling=true" -q)

posted @ 2023-05-16 20:38  pzistart  阅读(544)  评论(0编辑  收藏  举报