如何使用 Github 操作以 RSA 密钥作为构建参数构建 docker 图像

How to build a docker image with RSA key as build argument using Github Actions

我正尝试在 ubuntu 上使用 github 操作构建一个 docker 图像 - 最新。 docker 图像需要通过构建参数接收 RSA 密钥。

虽然在我的 macos machine 中构建图像没有任何问题,但在 github 操作中构建图像时我遇到了以下错误。

密钥存储为 ENV 变量,我使用的命令如下:

docker build --build-arg user_private_rsa=$USER_PRIVATE_RSA . -t auth-service

使用上面的命令在mac上成功构建镜像,但是当使用这个gihub动作时,我一点运气都没有。

on:
  push:
    branches: [ master ]
jobs:
  build-deploy:
    name: Build docker image
    runs-on: ubuntu-latest
  build-push-ecr:
    name: Build docker image and push to ecr
    runs-on: ubuntu-latest
    steps:  
      - name: Checkout
        uses: actions/checkout@v2
      - run: docker build --build-arg user_private_rsa=$USER_PRIVATE_RSA . -t auth-service
      - name: Build image
        env:
          USER_PRIVATE_RSA: ${{ secrets.USER_PRIVATE_RSA }}

bad flag syntax: -----END See 'docker build --help'.

错误发生是因为执行 docker 内置 github 操作,最终成为多行命令。

有没有人遇到过类似的问题可以帮我解决一下? 非常感谢!

您应该引用变量,即 --build-arg user_private_rsa="$USER_PRIVATE_RSA" 否则 docker 会选择第一个空格之后的任何内容作为其自身的选项。

万一有人遇到类似问题,我通过将 rsa 密钥作为 base64 字符串传递来解决它,因为 docker 需要一行命令。