基于docker compose部署artifactory-cpp-ce服务
- 1 环境准备
- 2 必要文件创建与编写
- 3 拉取镜像-创建容器并后台运行
- 4 访问JFog Artifactory 服务
1 环境准备
-
docker
以及其插件docker compose
,我使用的版本如下图所示:
-
postgresql
的jdbc
驱动, 我使用的是java8
的42.7.4
版本的:pgJDBC 下载地址
2 必要文件创建与编写
我部署
artifactory-cpp-ce
是用来作为私有的conan-center
服务的,索性创建目录:artifactory-conan
下述文件,均放置于该目录下即可。
docker-compose.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
数据的主密钥,可以生成一个随机密钥:
openssl rand -hex 32 > master.key
join.key
是用于集群节点间通信的密钥,在单节点情况下通常不需要, 此处创建一个空的join.key
文件
touch join.key
db.properties
是配置artifactory
连接数据库的文件
type=postgresql
driver=org.postgresql.Driver
url=jdbc:postgresql://postgres:5432/artifactory
username=artifactory
password=123123
system.yaml
, 这个文件在容器启动后会自己创建的,但是我查看其内容,发现关于数据库的配置是被注释掉的,导致容器内部一直使用默认数据库驱动,而导致出错。
shared:
database:
type: postgresql
driver: org.postgresql.Driver
url: jdbc:postgresql://postgres:5432/artifactory
username: artifactory
password: 123123
- 第1章环境准备中下载到的
pgJDBC
驱动jar
包
postgresql-42.7.4.jar
注意:需要开放容器创建时可以访问当前artifactory-conan
目录的权限
- 如果使用的是
docker-desktop
,请在Settings
-Resources
-Filesharing
添加目录的共享权限。 - 也可以更改用户的所有者来实现,共享权限;
sudo chown -R 1030:1030 artifactory-conan
好了,至此,所有准备工作都已完成。
文件树展示:
3 拉取镜像-创建容器并后台运行
在当前目录执行:
docker compose up -d
4 访问JFog Artifactory 服务
浏览器访问:127.0.0.1:8081
,会自动跳转到127.0.0.1:8082/ui/login/
页面.
默认用户名:admin
默认密码:password