【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

相关推荐
坐吃山猪10 小时前
Docker07-MySQL
mysql·docker·容器
Kismet_nvi11 小时前
《Kubernetes Service 进阶、kube-proxy 与 Ingress 实战精要》
云原生·容器·kubernetes
Crazy________12 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器
2401_8346369913 小时前
从零吃透 K8s 网络:ServiceIngressMetalLB 实操手册
网络·容器·kubernetes
Zhu75816 小时前
在docker环境部署frp
运维·docker·容器
x-cmd20 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
爱莉希雅&&&2 天前
K8s NFS+StorageClass+PV/PVC+Deployment 实战笔记
笔记·容器·kubernetes
GlueNa2SiO32 天前
08-Docker安全最佳实践
安全·docker·容器
一位正在转型AI全栈的前端工程师2 天前
前端转全栈:从 502 到 200,我的第一个 Docker+Nginx+Node.js 项目
docker·容器
维核科技2 天前
大模型私有化部署:Docker与Kubernetes实战避坑
docker·容器·kubernetes