docker-compose安装jpom,并构建前后端项目教程

  1. 自行安装docker-compose

  2. 配置jpom的docker-compose.yml文件

复制代码
version: '3'
services:
  portainer:
    image: jpomdocker/jpom
    container_name: jpom-server                                          # 容器名为'jpom-server'
    restart: always                                              # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    volumes:                                                             # 数据卷挂载路径设置,将本机目录映射到容器目录
      - "./jpom/logs:/usr/local/jpom-server/logs"
      - "./jpom/data:/usr/local/jpom-server/data"
      - "./jpom/conf:/usr/local/jpom-server/conf"
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    ports:                              # 映射端口
      - "2122:2122"

3.启动jpom

cd /home/toc/docker-compose/jpom

docker-compose up -d

docker ps 查看服务是否启动

安装jpom的agent插件

提前创建好文件夹 并且切换到对应到文件夹执行命令

复制代码
mkdir -p /home/toc/docker-compose/jpom/agent/
cd /home/toc/docker-compose/jpom/agent/
apt-get install -y wget && wget -O install.sh https://jpom.top/docs/install.sh && bash install.sh Agent jdk

4.登录jpom

5.配置构建项目设置

5.1配置ssh服务器信息

5.2 点击分配空间

5.3 关联工作空间

5.4 点击配置 。这里配置的是构建后jar和vue前端的dist的存放路径,多个路径换行就可以,我这里前端和后端的存放路径是在不同的服务器上面

5.5 配置docker管理

容器名称是刚刚安装的jpom在容器的名称

host是jpom的服务器的ip地址,端口2375需要配置一下,并开放端口

docker打开2375监听端口

1、编辑dock er.service ,在[service]的ExecStart ,添加 -H tcp://0.0.0.0:2375

复制代码
# vi /usr/lib/systemd/system/docker.service

2、在ExecStart ,添加 -H tcp://0.0.0.0:2375

复制代码
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

3、刷新配置文件

复制代码
systemctl daemon-reload

4、重启docker

复制代码
sudo systemctl restart docker
或者
sudo systemctl start docker

5、开放端口

复制代码
添加防火墙2375/tcp ,并重载防火墙

实在对命令不敏感,直接找到/usr/lib/systemd/system/docker.service文件,把步骤2直接替换复制进去就行

如果启动重启docker失败报错:Docker容器异常:See "systemctl status docker.service" and "journalctl -xe" for details.

参考:https://blog.csdn.net/Abraxs/article/details/130549026

daemon.json文件在/etc/docker目录下

解决完重启docker就行

5.6 配置拉取git镜像地址

5.7 构建前端项目

选择容器构建,点击查看当前可用容器,参考配置docker管理,然后新建标签

DSL内容:fromTag: tag改成你自己的

复制代码
 # 基础镜像 目前仅支持 ubuntu-latest
  runsOn: ubuntu-latest
  # 使用哪个 docker 构建,填写 docker 标签 默认查询可用的第一个,如果 tag 查询出多个也选择第一个结果
  fromTag: tag
  steps:
    - uses: node
      version: 22.14.0
      # 将容器中的 node_modules 文件缓存到 docker 卷中
    - uses: cache
      path: ${JPOM_WORKING_DIR}/node_modules
# 使用 copy 文件的方式缓存,反之使用软链的形式。copy 文件方式缓存 node_modules 可以避免 npm WARN reify Removing non-directory
      mode: copy
    - run: npm config set registry https://registry.npmmirror.com
  # 内置变量 ${JPOM_WORKING_DIR} ${JPOM_BUILD_ID}
    - run: cd  ${JPOM_WORKING_DIR}/ && npm install --registry=https://registry.npmmirror.com && npm run build:prod

选择构建前端的存放地址

直接下一步啥都不用填写,直接保存构建就可以了,构建成功之后在对应目录下面能找到构建你的产物

5.8 构建后端项目,步骤都一样,一下是不同区别的地方

产物目录:对应的你项目本地打成jar后的目录,也是对应你git上面的目录

DSL内容:

复制代码
runsOn: ubuntu-latest
# 使用哪个 docker 构建,填写 docker 标签 默认查询可用的第一个,如果 tag 查询出多个也选择第一个结果
fromTag: tag
# version 需要在对应镜像源中存在
# java 镜像源 https://mirrors.tuna.tsinghua.edu.cn/Adoptium/
# maven 镜像源 https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/
# node 镜像源 https://registry.npmmirror.com/-/binary/node/
# 目前支持的 uses 插件端 java、maven、node、go、python3、gradle 。如果不满足需求,可自行配置插件
steps:
  - uses: java
    version: 8
  - uses: maven
    version: 3.9.9
# 将容器中的 maven 仓库文件缓存到 docker 卷中
  - uses: cache
    path: /root/.m2
# 将此目录缓存到全局(多个构建可以共享此缓存目录)
    type: global
  - run: cd ${JPOM_WORKING_DIR} && mvn clean install -am -amd -Pmaster -Dmaven.test.skip=true

run: cd ${JPOM_WORKING_DIR} && mvn clean install -am -amd -Pmaster -Dmaven.test.skip=true 这个Pmaster对应你要启动哪个yml文件,例如我

我要构建jar的时候启动的是master的配置文件,如何动态加载配置文件自行百度

这里对应的发布后执行的命令,就是你构建要存放的文件路径

直接保存构建就可以了

相关推荐
四谎真好看1 小时前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
桦说编程1 小时前
深入解析CompletableFuture源码实现(2)———双源输入
java·后端·源码
java_t_t1 小时前
ZIP工具类
java·zip
lang201509282 小时前
Spring Boot优雅关闭全解析
java·spring boot·后端
IT_Octopus2 小时前
triton backend 模式docker 部署 pytorch gpu模型 镜像选择
pytorch·docker·triton·模型推理
pengzhuofan3 小时前
第10章 Maven
java·maven
百锦再3 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
刘一说3 小时前
Spring Boot 启动慢?启动过程深度解析与优化策略
java·spring boot·后端
壹佰大多3 小时前
【spring如何扫描一个路径下被注解修饰的类】
java·后端·spring
wudl55663 小时前
Docker 常用命令
docker·容器·eureka