1.前言
简单记录一下通过IDEA中的Docker插件快速的将项目进行发布,本文简单介绍部署一套博客系统的前后端项目~
2.开启Docker远程访问
2.1 修改docker.service文件
vim /lib/systemd/system/docker.service
找到 [Service] 节点,在 ExecStart 属性末尾追加: -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

2.2 重启Docker
systemctl daemon-reload
systemctl restart docker
2.3 开放访问端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
如果是云服务器的小伙伴,请在服务器安全组规则添加对应的端口~
2.4 配置CA安全认证
TODO
3.IDEA配置Docker插件
3.1 安装Docker插件
打开Settings,安装Docker插件,按照图中顺序进行操作。

3.2 配置Docker连接
打开Settings,连接Docker,按照图中顺序进行操作。
tcp://127.0.0.1:2375

4.项目部署
以 拾壹博客 为例,部署前后端项目
4.1 后端项目
4.1.1 集成Maven插件
修改项目的 pom.xml 文件,加入并修改以下配置
<properties>
<!-- Docker镜像的前缀 -->
<docker.image.prefix>xh</docker.image.prefix>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<!-- 远程Docker的地址 -->
<dockerHost>http://IP:端口</dockerHost>
<!-- 镜像名称(前缀/项目名) -->
<imageName>${docker.image.prefix}/blog-api</imageName>
<!-- Dockerfile位置 -->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/app</targetPath>
<!-- target文件夹 -->
<directory>${project.build.directory}</directory>
<!-- 打出来的jar包 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
4.1.2 创建Dockerfile文件
注:Dockerfile 文件的路径必须得与pom.xml中docker插件配置的路径一致!
FROM amazoncorretto:8
# 设置中文编码
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD /app/ /app/
WORKDIR /app
CMD ["java", "-jar", "shiyi-blog.jar"]
EXPOSE 8800

4.1.3 打包、构建镜像


镜像构建成功,进入控制台查看,打开Services(快捷键 Alt+8)

4.1.4 创建容器、运行
选中镜像,右键创建容器、填写参数、Run



4.2 前端项目
4.2.1 创建Dockerfile文件
FROM nginx
COPY dist/ /usr/share/nginx/html/

指定打包输出路径

npm run build

构建镜像、运行配置

4.2.2 打包、构建镜像、运行
打包(npm run build)


构建镜像、运行


4.3 测试
启动完成后自行测试~
评论区