SCP docker-compose.yml到远程服务器

时间:2020-10-26 14:53:30

标签: ssh deployment docker-compose gitlab-ci scp

我是新手,我开始使用GitlabCICD。 我的项目目录中有docker-compose.yml。我想使用scp命令将其上传到远程服务器,以便可以使用docker-compose up部署远程服务器。我成功地将SSH远程服务器了。 这就是我到目前为止所得到的。
在gitlab-ci.yml中,我有

image: docker:19

services:
  - docker:dind

stages:
  - build
  - package
  - deploy



cache:
  paths:
    - .m2/repository

variables:
  MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"

maven-build:
  image: maven:3-jdk-8
  stage: build
  script: "mvn package -B"
  artifacts:
    paths:
      - target/*.jar
docker-build:
  stage: package
  script:
    - docker version
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker pull $CI_REGISTRY_IMAGE:latest || true
    - docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - docker push $CI_REGISTRY_IMAGE:latest
deploy:
  stage: deploy
  variables:
    GIT_STRATEGY: none
  only:
    - master
  before_script:
    - apk update && apk add openssh-client bash
  script:

- eval $(ssh-agent -s)



- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- echo "$PATH_TO_PROJECT"

- mkdir -p ~/.ssh


- ssh-keyscan -H $SSH_SERVER_IP >> ~/.ssh/known_hosts

- chmod 644 ~/.ssh/known_hosts


- scp -o StrictHostKeyChecking=no docker-compose.yml $SSH_USER@$SSH_SERVER_IP:${PATH_TO_PROJECT};

- ssh $SSH_USER@$SSH_SERVER_IP
  "docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} &&
  cd ${PATH_TO_PROJECT} && docker-compose down && docker pull ${CI_REGISTRY_IMAGE}:latest && docker-compose up -d && docker image prune -f"

问题是,尽管我的项目目录中有docker-compose.yml,但在行scp -o StrictHostKeyChecking=no docker-compose.yml $SSH_USER@$SSH_SERVER_IP:${PATH_TO_PROJECT};上,“ docker-compose.yml没有这样的文件或目录”会发生错误。 我尝试使用echo "$PATH_TO_PROJECT" && cd $PATH_TO_PROJECT,但发生错误“无法CD到...没有这样的文件或目录”。
这是我的项目:

enter image description here

我该如何解决?

0 个答案:

没有答案