Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker GitLab无法在我的服务器上运行我的映像_Docker_Gitlab Ci_Devops_Pipeline - Fatal编程技术网

Docker GitLab无法在我的服务器上运行我的映像

Docker GitLab无法在我的服务器上运行我的映像,docker,gitlab-ci,devops,pipeline,Docker,Gitlab Ci,Devops,Pipeline,我使用Gitlab CI/CD。我在管道上运行不同的stage 对于deploy staging,当我的管道想要在我的服务上运行我的映像时,我遇到了一个问题--> yaml文件: 看起来像变量$IMAGE\u TAG,$IMAGE\u NAME为空。 您应该尝试在部署步骤中添加变量,如下所示 deploy-staging: stage: deploy image: gitlab/dind:latest cache: {} services: - d

我使用Gitlab CI/CD。我在管道上运行不同的
stage

对于
deploy staging
,当我的管道想要在我的服务上运行我的映像时,我遇到了一个问题-->

yaml文件:


看起来像变量
$IMAGE\u TAG
$IMAGE\u NAME
为空。 您应该尝试在部署步骤中添加变量,如下所示

deploy-staging:
    stage: deploy
    image: gitlab/dind:latest
    cache: {}
    services:
        - docker:dind
    variables:
        REGISTRY_URL: registry.gitlab.com
        DOCKER_HOST: tcp://docker:2375
        DOCKER_DRIVER: overlay2
        IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
        IMAGE_TAG: ${CI_COMMIT_REF_SLUG}
    before_script:
        ...

您可以为管道共享yaml文件吗?似乎变量是empty@Rezwan我更新我的postu是否更改了您的config.toml文件,以便使用特权标志运行docker executor@NicolaSpinster
$IMAGE\u标记
变量不为空
cache:
    key: "$CI_COMMIT_REF_NAME"
    paths:
        - .maven/

image: maven:3-jdk-8

stages:
    - build
    - test
    - analyze
    - package
    - release
    - deploy

before_script:
    - chmod +x mvnw
    - export MAVEN_USER_HOME=`pwd`/.maven
    - chmod +x mvnw
    - ./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-npm -DnodeVersion=v10.13.0 -DnpmVersion=6.4.1 -Dmaven.repo.local=$MAVEN_USER_HOME
    - ./mvnw com.github.eirslett:frontend-maven-plugin:npm -Dmaven.repo.local=$MAVEN_USER_HOME

maven-compile:
    stage: build
    script:
        - ./mvnw clean compile -Dmaven.test.failure.ignore=true -Dmaven.test.skip=true -Dmaven.repo.local=$MAVEN_USER_HOME
    artifacts:
        paths:
            - target/classes/
            - target/generated-sources/
        expire_in: 1 day

#maven-test:
#    stage: test
#    script:
#        - ./mvnw test -Dmaven.repo.local=$MAVEN_USER_HOME
#    artifacts:
#        reports:
#            junit: target/surefire-reports/TEST-*.xml
#        paths:
#            - target/test-results
#        expire_in: 1 day

#frontend-test:
#    stage: test
#    script:
#        - ./mvnw com.github.eirslett:frontend-maven-plugin:npm -Dfrontend.npm.arguments='test -- -u' -Dmaven.repo.local=$MAVEN_USER_HOME
#    artifacts:
#        reports:
#            junit: target/test-results/jest/TESTS-*.xml
#        paths:
#            - target/test-results
#        expire_in: 1 day

maven-package:
    stage: package
    script:
        - ./mvnw verify -Pprod -Dmaven.test.failure.ignore=true -Dmaven.test.skip=true -Dmaven.repo.local=$MAVEN_USER_HOME
    artifacts:
        paths:
            - target/*.war
        expire_in: 1 day
docker-push:
    image: docker:latest
    services:
        - docker:dind
    variables:
        REGISTRY_URL: registry.gitlab.com
        DOCKER_HOST: tcp://docker:2375
        DOCKER_DRIVER: overlay2
        IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
        IMAGE_TAG: ${CI_COMMIT_REF_SLUG}
    stage: release
    dependencies:
        - maven-package
    before_script:
        - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $REGISTRY_URL
    script:
        - docker build -f Dockerfile --tag=$IMAGE_TAG -t $IMAGE_NAME .
        - docker push $IMAGE_NAME

deploy-staging:
    stage: deploy
    image: gitlab/dind:latest
    cache: {}
    services:
        - docker:dind
    variables:
        DOCKER_DRIVER: overlay2
    before_script:
        # add the server as a known host
        - mkdir -p ~/.ssh
        - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
        - chmod 600 ~/.ssh/id_rsa
        - eval "$(ssh-agent -s)"
        - ssh-add ~/.ssh/id_rsa
        - ssh-keyscan -H $DEPLOYMENT_SERVER_IP >> ~/.ssh/known_hosts
    script:
        - ssh deployer@$DEPLOYMENT_SERVER_IP "docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}"
        # stop container, remove image.
        - ssh deployer@$DEPLOYMENT_SERVER_IP "docker stop ${IMAGE_TAG}" || true
        - ssh deployer@$DEPLOYMENT_SERVER_IP "docker rm ${IMAGE_TAG}" || true
        - ssh deployer@$DEPLOYMENT_SERVER_IP "docker rmi -f ${IMAGE_NAME}" || true
        # start new container
        - ssh deployer@$DEPLOYMENT_SERVER_IP "docker run --publish=8888:8888 -d ${IMAGE_NAME}"
    only:
        - develop
deploy-staging:
    stage: deploy
    image: gitlab/dind:latest
    cache: {}
    services:
        - docker:dind
    variables:
        REGISTRY_URL: registry.gitlab.com
        DOCKER_HOST: tcp://docker:2375
        DOCKER_DRIVER: overlay2
        IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
        IMAGE_TAG: ${CI_COMMIT_REF_SLUG}
    before_script:
        ...