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的配置文件,如何动态加载配置文件自行百度

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

直接保存构建就可以了

相关推荐
zhangxiangweide几秒前
Docker换源
运维·docker·容器
天上掉下来个程小白1 分钟前
添加购物车-02.代码开发
java·服务器·前端·后端·spring·微信小程序·苍穹外卖
User_芊芊君子1 小时前
【Java继承】——面向对象编程的基石
java·开发语言
胡斌附体1 小时前
idea查看pom文件依赖
java·ide·intellij-idea·maven依赖
李匠20241 小时前
C++GO语言微服务之Dockerfile && docker-compose
c++·docker·微服务·架构
PgSheep1 小时前
一文通俗讲解MySQL数据库常见面试题-持续更新
java·数据库·mysql·面试
幽络源小助理1 小时前
懒人美食帮SpringBoot订餐系统开发实现
java·spring boot·后端·美食
Cuit小唐1 小时前
C++ 模板方法模式详解
java·c++·模板方法模式
吗喽对你问好1 小时前
华为5.7机考第一题充电桩问题Java代码实现
java·华为·排序
胡斌附体1 小时前
设置环境变量启动jar报
java·jar·cmd·path