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 // 重置所有服务的用户