【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

相关推荐
LCY1335 小时前
3.k8s是如何工作的
云原生·容器·kubernetes
Bl_a_ck5 小时前
【C++】Docker介绍
运维·docker·容器·eureka
keepython7 小时前
【n8n docker 部署的代理问题】解决n8n部署无法访问openai等外国大模型厂商的api
运维·人工智能·docker·容器
八股文领域大手子7 小时前
优化IDEA2024.3大型项目启动慢
运维·nginx·spring·docker·容器
LCY1337 小时前
4. k8s核心概念 pod deployment service
云原生·容器·kubernetes
weixin_399380698 小时前
k8s+helm部署tongweb7云容器版(by lqw)
云原生·容器·kubernetes
斯普信专业组12 小时前
二进制和docker两种方式部署Apache pulsar(standalone)
docker·容器·apache
Michaelwubo12 小时前
docker 支持GPU 问题 安装 NVIDIA Docker
docker·容器·eureka
超級二蓋茨13 小时前
局域网内Docker镜像共享方法
运维·docker·容器
laimaxgg15 小时前
Docker Hub 创建私人镜像仓库
运维·服务器·docker·容器