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

如何在GitHub Actions/Azure Pipelines中启动预配置的JFrog Artifactory容器?

实现开箱即用的Artifactory临时实例用于集成测试

1. 用环境变量跳过交互式配置

JFrog Artifactory的Docker镜像支持通过环境变量直接完成核心配置,完全不需要运行config.sh。常用关键变量包括:

  • ARTIFACTORY_ADMIN_PASSWORD: 设置管理员初始密码
  • JFROG_PLATFORM_ADMIN_PASSWORD: 若使用JFrog Platform镜像,设置平台管理员密码
  • ARTIFACTORY_LICENSE_KEY: 可选,设置试用许可证(OSS版无需)

示例Docker Compose配置(docker-compose.yml):

version: '3.8'
services:
  artifactory:
    image: releases.jfrog.io/jfrog/artifactory-oss:latest
    ports:
      - "8081:8081"
      - "8082:8082"
    environment:
      - ARTIFACTORY_ADMIN_PASSWORD=Admin@123
    volumes:
      - artifactory_data:/var/opt/jfrog/artifactory
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8081/artifactory/api/system/ping"]
      interval: 30s
      timeout: 10s
      retries: 5
volumes:
  artifactory_data:

启动命令:docker compose up -d,等待健康检查通过后,即可用账号admin、密码Admin@123直接访问。

2. 在GitHub Actions中作为Service Container使用

直接在工作流中定义Artifactory服务容器,自动完成配置:

jobs:
  integration-test:
    runs-on: ubuntu-latest
    services:
      artifactory:
        image: releases.jfrog.io/jfrog/artifactory-oss:latest
        env:
          ARTIFACTORY_ADMIN_PASSWORD: Admin@123
        ports:
          - 8081:8081
          - 8082:8082
        options: >-
          --health-cmd "curl -f http://localhost:8081/artifactory/api/system/ping"
          --health-interval 30s
          --health-timeout 10s
          --health-retries 5
    steps:
      - uses: actions/checkout@v4
      - name: 等待Artifactory就绪
        run: |
          until curl -s http://localhost:8081/artifactory/api/system/ping; do
            echo "等待Artifactory启动..."
            sleep 10
          done
      - name: 执行集成测试
        run: ./your-test-script.sh

3. 在Azure Pipelines中通过Docker Compose启动

通过脚本步骤启动容器并等待就绪:

steps:
- script: |
    docker-compose up -d
    # 等待服务就绪
    until curl -s http://localhost:8081/artifactory/api/system/ping; do
      echo "等待Artifactory启动..."
      sleep 10
    done
  displayName: '启动Artifactory实例'
- script: ./your-test-script.sh
  displayName: '执行集成测试'
- script: docker-compose down
  displayName: '清理Artifactory实例'

确保代理已安装Docker和Docker Compose,或使用预装工具的托管代理。

4. 额外优化建议

  • 使用Artifactory OSS版进行测试,无需许可证,适合临时场景
  • 测试前可通过REST API预先创建所需仓库,示例:
    curl -u admin:Admin@123 -X POST http://localhost:8081/artifactory/api/repositories/docker-local \
      -H "Content-Type: application/json" \
      -d '{"key":"docker-local","rclass":"local","packageType":"docker"}'
    
  • 测试完成后及时清理容器和卷,避免资源占用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:16:12