最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Github CICD Upload docker image to virtual machine, can't connect without a private SSH key or password - Stack Overflow

programmeradmin0浏览0评论

i set up GitHub CI/CD for a Dockerized Project on virtual machine(digital Ocean), this is my .github/workflows/deploy.yml

name: Deploy Django App to DigitalOcean

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v2

    - name: Build Docker Image Locally
      run: |
        docker build -t django-app:latest .

    - name: Save Docker Image as a Tar File
      run: |
        docker save -o django-app.tar django-app:latest

    - name: Upload Docker Image to DigitalOcean via SCP
      uses: appleboy/scp-action@master
      with:
        host: ${{ secrets.DIGITALOCEAN_IP }}
        username: root
        key: ${{ secrets.DIGITALOCEAN_SSH_KEY }}
        port: 22
        source: "django-app.tar"
        target: "/root"
        timeout: "100s"

  deploy:
    runs-on: ubuntu-latest
    needs: build

    steps:
    - name: SSH into DigitalOcean and Deploy
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.DIGITALOCEAN_IP_SUSTAINABIITY }}
        username: root
        key: ${{ secrets.DIGITALOCEAN_SSH_KEY }}
        port: 22
        script: |
          docker load -i /root/django-app.tar
          docker stop django-app || true
          docker rm django-app || true
          docker run -d --name django-app -p 8003:8003 django-app:latest

when i view jobs everything works fine except at "Upload Docker Image to DigitalOcean via SCP"

on my account i have declared correctly my secrets and variables DIGITALOCEAN_IP_SUSTAINABIITY, DIGITALOCEAN_SSH_KEY(from cat ~/.ssh/id_rsa )

/usr/bin/docker run --name d990c28f62a50e38914d7499ab3c1231dbafa3_73c2ef --label d990c2 --workdir /github/workspace --rm -e "INPUT_HOST" -e "INPUT_USERNAME" -e "INPUT_KEY" -e "INPUT_PORT" -e "INPUT_SOURCE" -e "INPUT_TARGET" -e "INPUT_TIMEOUT" -e "INPUT_PASSWORD" -e "INPUT_PROTOCOL" -e "INPUT_COMMAND_TIMEOUT" -e "INPUT_KEY_PATH" -e "INPUT_PASSPHRASE" -e "INPUT_FINGERPRINT" -e "INPUT_USE_INSECURE_CIPHER" -e "INPUT_RM" -e "INPUT_DEBUG" -e "INPUT_STRIP_COMPONENTS" -e "INPUT_OVERWRITE" -e "INPUT_TAR_DEREFERENCE" -e "INPUT_TAR_TMP_PATH" -e "INPUT_TAR_EXEC" -e "INPUT_PROXY_HOST" -e "INPUT_PROXY_PORT" -e "INPUT_PROXY_USERNAME" -e "INPUT_PROXY_PASSWORD" -e "INPUT_PROXY_PASSPHRASE" -e "INPUT_PROXY_TIMEOUT" -e "INPUT_PROXY_KEY" -e "INPUT_PROXY_KEY_PATH" -e "INPUT_PROXY_FINGERPRINT" -e "INPUT_PROXY_USE_INSECURE_CIPHER" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e "ACTIONS_RESULTS_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/safaripro-sustainability-management-service/safaripro-sustainability-management-service":"/github/workspace" d990c2:8f62a50e38914d7499ab3c1231dbafa3
2025/02/02 07:06:26 Error: can't connect without a private SSH key or password

i tried to use password instead of private key all jobs are successful expect at "Upload Docker Image to DigitalOcean via SCP"

i have correct assigned secret and variables


name: Deploy Django App to DigitalOcean

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v2

    - name: Build Docker Image Locally
      run: |
        docker build -t django-app:latest .

    - name: Save Docker Image as a Tar File
      run: |
        docker save -o django-app.tar django-app:latest

    - name: Upload Docker Image to DigitalOcean via SCP
      uses: appleboy/scp-action@master
      with:
        host: ${{ secrets.DIGITALOCEAN_IP_SUSTAINABILITY }}
        username: ${{ secrets.DIGITALOCEAN_USER }}
        password: ${{ secrets.DIGITALOCEAN_PASS_SUSTAINABILITY }}
        port: 22
        source: "django-app.tar"
        target: "/tmp/"  # Upload to /tmp/ instead of /root/
        timeout: "100s"

  deploy:
    runs-on: ubuntu-latest
    needs: build

    steps:
    - name: SSH into DigitalOcean and Deploy
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.DIGITALOCEAN_IP_SUSTAINABILITY }}
        username: ${{ secrets.DIGITALOCEAN_USER }}
        password: ${{ secrets.DIGITALOCEAN_PASS_SUSTAINABILITY }}
        port: 22
        script: |
          mv /tmp/django-app.tar /root/django-app.tar  # Move file to root directory
          docker load -i /root/django-app.tar
          docker stop django-app || true
          docker rm django-app || true
          docker run -d --name django-app -p 8003:8003 django-app:latest

I am still getting the same error

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论