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

时间:2019-04-11 18:16:00

标签: docker gitlab jfrog-cli

我在下面使用不同的门户网站进行了构建。我对下面的代码行感到困惑。

  1. 我可以只使用docker push而不是./jfrog rt dp吗?如果我使用它们中的任何一个,有什么区别。
  2. 以下代码行的用途。需要吗?添加它有任何用处。我看到我可以在JFROG中看到构建信息。但是我已经将我的构建推向了虚构。
  
      
  • ./ jfrog rt bce gitlabci-docker-artifactory $ CI_JOB_ID
  •   
  • ./ jfrog rt bp gitlabci-docker-artifactory $ CI_JOB_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

1 个答案:

答案 0 :(得分:0)

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

在命令中

  • myserver:8081 是Artifactory服务器的名称
  • docker 是虚拟存储库的名称
  • distroless-go:1 是容器的名称和标签

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

2b)命令./jfrog rt bp gitlabci-docker-artifactory $CI_JOB_ID将向JFrog Artifactory发布收集的构建信息(环境变量和其他一些元数据)。在此特定命令中,gitlabci-docker-artifactory是显示在JFrog Artifactory中的内部版本名称,$CI_JOB_ID是内部版本号

在OP评论后编辑:

命令docker push将docker映像放入JFrog Artifactory,但不会捕获环境变量和在构建期间生成的一些其他元数据。如果那很重要,您也将要运行其他两个命令。如果您只想存储docker映像,则不必使用这些命令(为公平起见,我与之交谈的大多数人和我自己都包括在内,请将这些详细信息上载到Artifactory以跟踪构建过程中发生的情况)