【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

相关推荐
会飞的小蛮猪6 小时前
K8s-1.29.2二进制安装-第一章
云原生·容器·kubernetes
树下水月11 小时前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器
凯子坚持 c11 小时前
Docker 网络管理深度解析与实践指南
运维·docker·容器
kevin_水滴石穿11 小时前
在镜像生成时从内网获取字体安装包并配置
linux·docker·容器
LILR_12 小时前
简单学docker
运维·docker·容器
Empty_77713 小时前
K8S-网络原理
网络·容器·kubernetes
永不停歇的蜗牛13 小时前
K8S之创建cm指令create和 apply的区别
java·容器·kubernetes
java_logo13 小时前
Transmission Docker 容器化部署指南
运维·docker·容器·kubernetes·apache·rocketmq·transmission
kali-Myon14 小时前
快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题
运维·安全·docker·容器·gdb·pwn·tmux
一周困⁸天.15 小时前
K8S-网络组件 Calico
网络·容器·kubernetes