JFrog Artifactory的部署及Conan包迁移

1. docker-compose启动Artifactory服务,docker-compose.yml文件如下

version: '3'
services:
  artifactory_conan:
    image: docker.bintray.io/jfrog/artifactory-cpp-ce:7.46.6
    restart: always
    privileged: true
    environment:
      - LANG=C.UTF-8
    ports:
      - "9299:22"
      - "9300:8081"
      - "9301:8082"
    container_name: artifactory_conan
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /apps:/apps
      - /home/user/jfrog/artifactory_new:/var/opt/jfrog/artifactory
    network_mode:
      bridge

2. 启动过程中若报权限相关的错误,则需执行 chmod 777  /home/user/jfrog/artifactory_new

3. 进入页面,默认用户名admin,密码password,创建本地conan仓库,填写必要信息即创建成功

 

4. 页面查看新建仓库的相关信息

​​​​​​​

 

 5. 如需将其他conan服务的包迁移至你刚创建的conan服务中,则需执行以下python脚本,脚本执行完毕时包顺利迁移成功(指拷贝而非移动)

#upload.py
import os

def run(cmd):
    ret = os.system(cmd)
    if ret != 0:
        raise Exception("Command failed: %s" % cmd)

f = open("package.txt")
line = f.readline()      
while line: 
    print(line, end = '')      # 在 Python 3 中使用
    line = line.strip('\n')
    print("Downloading %s" % line)
    print("conan download %s -r=originConanServer" % line)
    run("conan download %s -r=originConanServer" % line)
    line = f.readline() 
 
f.close()
run("conan upload \"*\" --all --confirm -r=yourConanServer

# package.txt为执行conan search -r originConanServer 所输出的结果,即原conan服务所有的包名,结构类似于boost/1.78.0@conan/stable(每个包名占一行)

 6. 用户管理相关页面,具体配置路径在容器内部/var/opt/jfrog/artifactory/etc/access路径下

 

7.conan常用命令

conan remote add <server_name> <sever_url> // 将远端conan服务器加入本地列表。conan remote add cloud http://conan.abc.com/artifactory/api/conan/ConanLibraries
conan install . -s build_type=Debug -s os=Linux -r cloud // Linux初始化
conan install . -s build_type=Debug -s arch=x86_64 -s os=Windows -r cloud // Windows初始化
conan search rapidjson/1.1.0@Common/stable // 查看本地库的详细信息
conan install -r cloud rapidjson/1.1.0@Common/stable // 安装具体某个包
conan search -r cloud rapidjson/1.1.0@Common/stable -q "arch=x86 AND os=Windows" // 查看远程库的详细信息
conan remove packageName // 删除本地库packageName,name如rapidjson/1.1.0@Common/stable
conan remove -p packageId // 删除本地库packageId
conan remove -r cloud rapidjson/1.1.0@Common/stable -q "arch=x86_64 AND os=Linux" --force // 强制删除远程库

conan export-pkg conanfile.py VTK/8.2.0@Common/stable-debug1 -s arch=x86_64 -s os=Linux -s build_type=Debug -f // 本地打包
conan upload VTK/8.2.0@Common/stable -r cloud --force --all // 上传提交

conan user <user_name> -r <server_name> -p <user_pwd> --skip-auth // 配置指定服务的用户
conan user --clean // 重置所有服务的用户

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值