代码之家  ›  专栏  ›  技术社区  ›  Hacker

直接使用docker命令或通过jfrog CLI使用docker命令

  •  0
  • Hacker  · 技术社区  · 6 年前

    我使用不同的入口在下面构建。我在下面的代码行中有混乱。

    1. 我能用一下吗 docker push 而不是 ./jfrog rt dp
    2. 下面几行代码有什么用。需要吗?添加它会有任何用处。我看到我可以在JFROG中看到构建信息。但我已经把我的构建推到人工制品厂了。
    • ./jfrog rt bp gitlabci docker人工制品$CI_作业\u ID
    image: arielkv/dind-glibc:latest
    
    services:
      - docker:dind
         stages:
        - Install
        - build
    
    before_script:
      - apk update
      - apk add go curl
      - curl -fL https://getcli.jfrog.io | sh
      - ./jfrog rt config MyArtifactory --url $ARTIFACTORY_URL --user $ARTIFACTORY_USER --apikey $ARTIFACTORY_PASS
      - docker login -u $ARTIFACTORY_USER -p $ARTIFACTORY_PASS $ARTIFACTORY_DOCKER_REPOSITORY
    
    
    Build:
        stage: build
        script:
        - docker build --rm=false --build-arg NODE_ENV=prod -t $ARTIFACTORY_DOCKER_REPOSITORY/artifactory-alpine:$CI_JOB_ID .
        - docker run -d -p 8081:8081 $ARTIFACTORY_DOCKER_REPOSITORY/artifactory-alpine:$CI_JOB_ID; sleep 10
        #- docker push $ARTIFACTORY_DOCKER_REPOSITORY/artifactory-alpine:$CI_JOB_ID
        - ./jfrog rt dp $ARTIFACTORY_DOCKER_REPOSITORY/artifactory-alpine:$CI_JOB_ID $DOCKER_REPOSITORY_KEY --build-name=gitlabci-docker-artifactory
    --build-number=$CI_JOB_ID
        - ./jfrog rt bce gitlabci-docker-artifactory $CI_JOB_ID
        - ./jfrog rt bp gitlabci-docker-artifactory $CI_JOB_ID
        only:
        - master
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   retgits    6 年前

    1) 你当然可以用 docker push 而不是使用JFrog CLI。为此,您需要执行三个命令:

    docker login myserver:8081
    docker tag retgits/distroless-go:latest myserver:8081/docker/distroless-go:1
    docker push myserver:8081/docker/distroless-go:1
    

    • 我的服务器:8081 工件服务器的名称
    • 虚拟存储库的名称
    • 无发行版go:1 是容器的名称和标签

    2a)命令 ./jfrog rt bce gitlabci-docker-artifactory $CI_JOB_ID 收集执行命令的当前容器或计算机的环境变量。可以使用build publish命令排除环境变量。在这个特定的命令中 gitlabci-docker-artifactory 是在JFrog Artifactory中显示的构建名称,并且 $CI_JOB_ID 将是内部版本号。

    ./jfrog rt bp gitlabci-docker-artifactory $CI_JOB_ID 将收集到的构建信息(环境变量和其他一些元数据)发布到JFrog工件。在这个特定的命令中 gitlabci docker人工制品 是在JFrog Artifactory中显示的构建名称,并且 $CI_作业标识

    编辑来自OP的评论:

    将docker映像放入JFrog工件,但它不会捕获环境变量和在构建期间生成的一些附加元数据。如果这很重要,您还需要运行另外两个命令。如果你只想存储docker镜像,你不必使用这些命令(公平地说,我和我交谈过的大多数人,包括我自己在内,都会将这些细节上传到Artifactory,以跟踪构建过程中发生的事情)。