【问题标题】:Push images into docker hub and deploy in aws cluster?将图像推送到 docker hub 并部署在 aws 集群中?
【发布时间】:2022-01-15 04:22:10
【问题描述】:

我正在尝试将我的应用程序部署到 aws 集群中,如下所示 步骤

  1. 构建映像并推送到 docker hub(它正在工作)
  2. 将映像部署到 aws 集群(我无法使其工作)

我在谷歌搜索,但找不到任何解决方案。 这是我的 GitHub 工作流文件 deploy.yml。感谢您提供任何帮助以使其正常工作。

# This is a basic workflow that is manually triggered

name: Deploy Manual

# Controls when the action will run. Workflow runs when manually triggered using the UI
# or API.
on:
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "deploy"
  deploy:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    env:
      IMAGE_TAG: ${{ github.sha }}
      KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
      KUBE_NAMESPACE: production
      DOCKER_USER: ${{secrets.DOCKER_HUB_USERNAME}}
      DOCKER_PASSWORD: ${{secrets.DOCKER_HUB_ACCESS_TOKEN}}                                                                                               
      RELEASE_IMAGE: ucars/ucars-ui3:${{ github.sha }}

    steps:
    # This step instructs Github to cancel any current run for this job on this very repository.
    - name: Cancel Previous Runs               
      uses: styfle/cancel-workflow-action@0.4.1
      with:                                    
        access_token: ${{ github.token }}   
    - uses: actions/checkout@v2
    - name: docker login
      run: |
        docker login -u $DOCKER_USER -p $DOCKER_PASSWORD 
    - name: Build the Docker image
      run: docker build . --file Dockerfile --tag $RELEASE_IMAGE
      
    - name: Docker Push
      run: docker push $RELEASE_IMAGE

    - name: Deploy to Kubernetes cluster                                                                            
      uses: kodermax/kubectl-aws-eks@master                   
      with:                                                                                                         
        args: set image deployment/ucars-ui3-pod app=${{ env.RELEASE_IMAGE }} --record -n $KUBE_NAMESPACE   

Deploy to Kubernetes cluster这一步失败了


2022-01-14T18:22:14.4557590Z ##[group]Run kodermax/kubectl-aws-eks@master
2022-01-14T18:22:14.4558128Z with:
2022-01-14T18:22:14.4559002Z   *** set image deployment/***-ui3-pod app=***/***-ui3:3d23d9fb07a2ce43b3a27502359c1a0685705200 --record -n $KUBE_NAMESPACE
2022-01-14T18:22:14.4559708Z ***
2022-01-14T18:22:14.4560253Z   IMAGE_TAG: 3d23d9fb07a2ce43b3a27502359c1a0685705200
2022-01-14T18:22:14.4608584Z   KUBE_CONFIG_DATA: ***

2022-01-14T18:22:14.4609135Z   KUBE_NAMESPACE: production
2022-01-14T18:22:14.4609639Z   DOCKER_USER: ***
2022-01-14T18:22:14.4610253Z   DOCKER_PASSWORD: ***
2022-01-14T18:22:14.4610915Z   RELEASE_IMAGE: ***/***-ui3:3d23d9fb07a2ce43b3a27502359c1a0685705200
2022-01-14T18:22:14.4611509Z ##[endgroup]
2022-01-14T18:22:14.4809817Z ##[command]/usr/bin/docker run --name a74655ce21da3d4675874b9544657797b0_b31db8 --label 9916a7 --workdir /github/workspace --rm -e IMAGE_TAG -e KUBE_CONFIG_DATA -e KUBE_NAMESPACE -e DOCKER_USER -e DOCKER_PASSWORD -e RELEASE_IMAGE -e INPUT_ARGS -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_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_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_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/***-ui3/***-ui3":"/github/workspace" 9916a7:4655ce21da3d4675874b9544657797b0 set image deployment/***-ui3-pod app=***/***-ui3:3d23d9fb07a2ce43b3a27502359c1a0685705200 --record -n $KUBE_NAMESPACE
2022-01-14T18:22:14.7791749Z base64: invalid input

【问题讨论】:

  • 您遇到什么错误?您必须提供比这更多的信息
  • @RakeshGupta 我已经添加了错误日志。可以看看吗?
  • 能不能用docker pull在本地拉这个镜像,可能是镜像损坏什么的

标签: kubernetes github-actions amazon-ecs dockerhub cicd


【解决方案1】:

我想我已经找到了问题,显然,KUBE_CONFIG_DATA 无效。您在 kodermax/kubectl-aws-eks@master 图像中的 entrypoint.sh 正在尝试解码它,但不能并抛出错误。

#!/bin/sh

set -e

# Extract the base64 encoded config data and write this to the KUBECONFIG
echo "$KUBE_CONFIG_DATA" | base64 -d > /tmp/config
export KUBECONFIG=/tmp/config

sh -c "kubectl $*"

请修复 KUBE_CONFIG_DATA,它必须是有效的 base64 格式。如果您将原始 kubeconfig 文件放在那里,您可能需要先将其转换为 base64 格式。

KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    相关资源
    最近更新 更多