【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

相关推荐
LCRxxoo1 小时前
windows docker下启动mysql报Bind on unix socket: Input/output error
mysql·docker·容器
职教育人2 小时前
Docker UI强大之处?
spring cloud·docker·容器
是芽芽哩!6 小时前
【Kubernetes】常见面试题汇总(三十)
云原生·容器·kubernetes
是芽芽哩!12 小时前
【Kubernetes】常见面试题汇总(二十三)
云原生·容器·kubernetes
赵渝强老师16 小时前
【赵渝强老师】K8s的DaemonSets控制器
linux·docker·云原生·容器·kubernetes
福大大架构师每日一题17 小时前
16.3 k8s容器cpu内存告警指标与资源request和limit
容器·贪心算法·kubernetes·prometheus
大田斗小木子20 小时前
Docker学习
学习·docker·容器
莫得等待1 天前
kubernetes架构
容器·架构·kubernetes
铁板鱿鱼1401 天前
docker基本(仅供自己参考)
运维·docker·容器