【Docker】基于docker compose部署artifactory-cpp-ce服务

devtools/2024/9/25 21:29:01/

基于docker compose部署artifactory-cpp-ce服务

  • 1 环境准备
  • 2 必要文件创建与编写
  • 3 拉取镜像-创建容器并后台运行
  • 4 访问JFog Artifactory 服务

1 环境准备

  • docker 以及其插件docker compose ,我使用的版本如下图所示:
    在这里插入图片描述

  • postgresqljdbc驱动, 我使用的是java842.7.4版本的:pgJDBC 下载地址

2 必要文件创建与编写

我部署artifactory-cpp-ce是用来作为私有的conan-center 服务的,索性创建目录:artifactory-conan
下述文件,均放置于该目录下即可。

  • docker-compose.yaml
services:artifactory:image: docker.bintray.io/jfrog/artifactory-cpp-ce:latestcontainer_name: artifactoryports:- "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/artifactoryvolumes:- 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.jardepends_on:postgres:condition: service_healthyhealthcheck:test: ["CMD", "pg_isready", "-U", "artifactory"]interval: 10stimeout: 5sretries: 10postgres:image: postgres:13container_name: postgresports:- "5432:5432"environment:POSTGRES_USER: artifactoryPOSTGRES_PASSWORD: 123123POSTGRES_DB: artifactoryvolumes:- postgres_data:/var/lib/postgresql/datahealthcheck:test: ["CMD-SHELL", "pg_isready -U artifactory"]interval: 10stimeout: 5sretries: 5volumes: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: postgresqldriver: org.postgresql.Driverurl: jdbc:postgresql://postgres:5432/artifactoryusername: artifactorypassword: 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


http://www.ppmy.cn/devtools/117174.html

相关文章

Springboot——自定义分布式锁注解实现带SPEL表达式的分布式锁解析

文章目录 前言代码实现依赖引入自定义分布式锁注解aop切面切点处理逻辑 自定义锁注解的使用不使用el表达式解析使用EL表达式解析 前言 在分布式锁的实现中,通常会使用Redisson实现。但每次使用都会写下面的这种逻辑。 RLock rLock null; try {rLock redissonCli…

CSRF中级防御绕过

1)回顾low级别做过csrf页面的密码重置,重复之前的操作,我们发现级别调整中级之后,报错如下 2)查看源码 $_SERVER[‘HTTP_REFERER’]:上一次的请求的url$_SERVER[‘SERVER_NAME’]:当前的服务器的host代码&…

前端接口415状态码【解决】

前端接口415状态码【解决】 一、概述 415状态码是HTTP协议中的一个标准响应状态码,代表“Unsupported Media Type”(不支持的媒体类型)。当客户端尝试上传或发送一个服务器无法处理的媒体类型时,服务器会返回这个状态码。这通常意…

泰勒锥检测系统源码分享

泰勒锥检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

通信工程学习:什么是VNF虚拟网络功能

VNF:虚拟网络功能 VNF(Virtual Network Function)即虚拟网络功能,是网络功能虚拟化(NFV)架构中的一个核心概念。VNF允许通过软件化和虚拟化的方式,将传统的网络设备功能(如路由器、交…

Web_php_include 攻防世界

<?php show_source(__FILE__); echo $_GET[hello]; $page$_GET[page]; while (strstr($page, "php://")) { 以是否检测到php://为判断执行循环$pagestr_replace("php://", "", $page);//传入空值&#xff0c;替换 } include($page); ?&g…

24/9/24 算法笔记 超参数优化算法

在机器学习中&#xff0c;优化超参数的算法是至关重要的&#xff0c;因为它们可以帮助我们找到最佳的模型配置&#xff0c;从而提高模型的性能。以下是一些常用的超参数优化算法&#xff1a; 网格搜索&#xff08;Grid Search&#xff09;&#xff1a;这是一种穷举搜索的方法&a…

深入探讨 Flask、Gunicorn、Gevent 与 RecursionError:事件循环与 Monkey Patching 的正确使用

在现代高并发应用中&#xff0c;使用异步 I/O 操作处理密集的网络任务&#xff08;例如短信发送&#xff09;是提升系统性能的常见策略。为了在 Python 中实现这样的并发处理&#xff0c;我们可以使用 Gunicorn 和 Gevent 搭配 Flask 应用。然而&#xff0c;在实现过程中&#…