【Docker】基于docker compose部署artifactory-cpp-ce服务

基于docker compose部署artifactory-cpp-ce服务

  • [1 环境准备](#1 环境准备)
  • [2 必要文件创建与编写](#2 必要文件创建与编写)
  • [3 拉取镜像-创建容器并后台运行](#3 拉取镜像-创建容器并后台运行)
  • [4 访问JFog Artifactory 服务](#4 访问JFog Artifactory 服务)

1 环境准备

  • docker 以及其插件docker compose ,我使用的版本如下图所示:

  • postgresqljdbc驱动, 我使用的是java842.7.4版本的:pgJDBC 下载地址

2 必要文件创建与编写

我部署artifactory-cpp-ce是用来作为私有的conan-center 服务的,索性创建目录:artifactory-conan

下述文件,均放置于该目录下即可。

  • docker-compose.yaml
yaml 复制代码
services:
  artifactory:
    image: docker.bintray.io/jfrog/artifactory-cpp-ce:latest
    container_name: artifactory
    ports:
      - "8081:8081"
      - "8082:8082"
    environment:
      - ARTIFACTORY_HOME=/var/opt/jfrog/artifactory
      - DB_TYPE=postgresql
      - DB_USER=artifactory
      - DB_PASSWORD=123123
      - DB_URL=jdbc:postgresql://postgres:5432/artifactory
    volumes:
      - artifactory_data:/var/opt/jfrog/artifactory
      - ./master.key:/var/opt/jfrog/artifactory/etc/security/master.key
      - ./join.key:/var/opt/jfrog/artifactory/etc/security/join.key
      - ./db.properties:/var/opt/jfrog/artifactory/etc/db.properties
      - ./system.yaml:/var/opt/jfrog/artifactory/etc/system.yaml
      - ./postgresql-42.7.4.jar:/var/opt/jfrog/artifactory/tomcat/lib/postgresql-42.7.4.jar
    depends_on:
      postgres:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "artifactory"]
      interval: 10s
      timeout: 5s
      retries: 10

  postgres:
    image: postgres:13
    container_name: postgres
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: artifactory
      POSTGRES_PASSWORD: 123123
      POSTGRES_DB: artifactory
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U artifactory"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  artifactory_data:
  postgres_data:
  • master.key 是用于加密 Artifactory 数据的主密钥,可以生成一个随机密钥:
shell 复制代码
openssl rand -hex 32 > master.key
  • join.key是用于集群节点间通信的密钥,在单节点情况下通常不需要, 此处创建一个空的 join.key 文件
shell 复制代码
touch join.key
  • db.properties 是配置 artifactory 连接数据库的文件
yaml 复制代码
type=postgresql
driver=org.postgresql.Driver
url=jdbc:postgresql://postgres:5432/artifactory
username=artifactory
password=123123
  • system.yaml, 这个文件在容器启动后会自己创建的,但是我查看其内容,发现关于数据库的配置是被注释掉的,导致容器内部一直使用默认数据库驱动,而导致出错。
yaml 复制代码
shared:
    database:
        type: postgresql
        driver: org.postgresql.Driver
        url: jdbc:postgresql://postgres:5432/artifactory
        username: artifactory
        password: 123123
  • 第1章环境准备中下载到的 pgJDBC 驱动 jar
text 复制代码
postgresql-42.7.4.jar

注意:需要开放容器创建时可以访问当前artifactory-conan目录的权限

  • 如果使用的是docker-desktop,请在Settings - Resources - Filesharing 添加目录的共享权限。
  • 也可以更改用户的所有者来实现,共享权限;
shell 复制代码
sudo chown -R 1030:1030 artifactory-conan

好了,至此,所有准备工作都已完成。

文件树展示:

3 拉取镜像-创建容器并后台运行

在当前目录执行:

shell 复制代码
docker compose up -d

4 访问JFog Artifactory 服务

浏览器访问:127.0.0.1:8081 ,会自动跳转到127.0.0.1:8082/ui/login/页面.

默认用户名:admin

默认密码:password

相关推荐
小坏讲微服务9 小时前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s
Aimyon_369 小时前
MinerU Docker自定义版本部署
运维·docker·容器
梁正雄11 小时前
19、docker跨主机网络 Overlay\Underlay
网络·docker·容器
wuk99814 小时前
基于开源操作系统搭建K8S高可用集群
容器·kubernetes·开源
没有口袋啦15 小时前
《云原生基础设施》
云原生·容器·kubernetes·华为云
爱宇阳16 小时前
Vue3 前端项目 Docker 容器化部署教程
前端·docker·容器
帅帅梓16 小时前
docker 资源限制
运维·docker·容器
马达加斯加D19 小时前
k8s --- resource 资源
云原生·容器·kubernetes
梁正雄20 小时前
18、docker-macvlan-2-示例
运维·docker·容器·macvlan
Ryan ZX21 小时前
openEuler 22.03-Docker离线安装教程
运维·docker·容器