我在下面用不同的入口建造。我对下面的代码行感到困惑。
docker push代替./jfrog rt dp吗?如果我用它们中的任何一种会有什么区别吗。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发布于 2019-04-12 16:04:38
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在命令中
2a)命令./jfrog rt bce gitlabci-docker-artifactory $CI_JOB_ID收集执行命令的当前容器或机器的环境变量。可以使用生成发布命令排除环境变量。在这个特定的命令中,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将把对接者映像输入到JFrog Artifactory中,但是它不会捕获环境变量和在构建过程中生成的一些额外的元数据。如果这很重要,您也需要运行另外两个命令。如果您只想存储docker映像,则不需要使用这些命令(公平地说,大多数与我交谈的人和我本人都会将这些细节上传到Artifactory,以跟踪构建过程中发生的事情)。
https://stackoverflow.com/questions/55638870
复制相似问题