You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何构建含自定义仓库的Artifactory Dockerfile并扩展官方镜像添加用户?

嘿,我刚好做过类似的需求,给你整理了一套完整的方案,用来扩展官方Artifactory OSS镜像,自动添加自定义本地仓库和带指定凭据的新用户,亲测能用:

扩展Artifactory OSS Docker镜像:自动配置仓库与用户

核心思路

Artifactory有个很实用的特性:启动时会自动执行/var/opt/jfrog/artifactory/etc/init.d目录下的脚本。我们可以利用这个机制,把创建仓库、用户的逻辑写成脚本,打包进自定义镜像里,让容器启动时自动完成配置。

步骤1:编写初始化脚本

创建一个名为init_artifactory.sh的脚本,里面包含等待Artifactory服务就绪、调用API创建仓库和用户的逻辑:

#!/bin/bash

# 先等Artifactory服务完全启动,不然API调用会失败
wait_for_artifactory() {
  until curl -s http://localhost:8081/artifactory/api/system/ping | grep -q "OK"; do
    echo "等着Artifactory启动起来..."
    sleep 5
  done
}

wait_for_artifactory

# 默认管理员账号是admin/password,第一次启动后记得改!
ADMIN_USER="admin"
ADMIN_PASS="password"

# ---------------------- 创建自定义本地仓库 ----------------------
REPO_NAME="my-local-docker-repo"
REPO_TYPE="docker" # 换成maven、npm、generic等都可以
curl -u ${ADMIN_USER}:${ADMIN_PASS} -X PUT "http://localhost:8081/artifactory/api/repositories/${REPO_NAME}" \
  -H "Content-Type: application/json" \
  -d '{
    "rclass": "local",
    "packageType": "'${REPO_TYPE}'",
    "description": "内部专用Docker镜像仓库",
    "notes": "用来存我们自己构建的镜像"
  }'

# ---------------------- 创建新用户 ----------------------
USER_NAME="dev-user"
USER_PASS="DevPass_2024!" # 替换成你需要的凭据
curl -u ${ADMIN_USER}:${ADMIN_PASS} -X POST "http://localhost:8081/artifactory/api/security/users/${USER_NAME}" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "dev-user@company.com",
    "password": "'${USER_PASS}'",
    "admin": false,
    "profileUpdatable": true,
    "groups": ["deployers"] # 给用户分配部署权限组,按需调整
  }'

echo "仓库和用户都创建好啦!"

步骤2:编写Dockerfile

基于官方镜像,把我们的脚本复制到指定目录:

FROM docker.bintray.io/jfrog/artifactory-oss:latest

# 把初始化脚本复制到Artifactory的启动脚本目录
COPY init_artifactory.sh /var/opt/jfrog/artifactory/etc/init.d/

# 给脚本加上执行权限
RUN chmod +x /var/opt/jfrog/artifactory/etc/init.d/init_artifactory.sh

步骤3:构建并运行自定义镜像

  1. 构建镜像:
docker build -t my-custom-artifactory .
  1. 启动容器:
docker run -d -p 8081:8081 --name my-artifactory my-custom-artifactory

验证配置

容器启动后,你可以:

  • 访问http://localhost:8081/artifactory,用管理员账号登录,在Repositories菜单里找my-local-docker-repo
  • 进入Admin > Security > Users,查看dev-user是否存在,也可以用这个账号登录试试凭据是否正确

生产环境注意事项

  • 别在脚本里硬编码密码!可以改成环境变量传递,比如把USER_PASS换成${USER_PASSWORD},启动时用-e USER_PASSWORD=你的密码传入
  • 如果要创建多个仓库或用户,直接在脚本里加对应的curl命令就行
  • 第一次启动后,一定要修改默认的管理员密码!

内容的提问来源于stack exchange,提问作者Heniek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:05:13