【问题标题】:How to build an Docker image with GitHub actions using uncommited local certificate files如何使用未提交的本地证书文件通过 GitHub 操作构建 Docker 映像
【发布时间】:2022-01-20 22:43:47
【问题描述】:

我已经设置了一个 GitHub 操作工作流,当我将代码推送到我的存储库中的一个分支时,GitHub 操作帮助我构建该存储库的映像并将其推送到 Docker Hub,它工作正常。

问题是我现在有我想在本地保存的证书文件(即不推送到我的 GitHub 存储库)——但这也意味着 GitHub 操作在构建图像时无权访问它们,因此,它们不会包含在 Docker Hub 上的构建映像中,我用来从生产服务器中提取这些映像 - 我现在没有证书文件。 如何设置 GitHub 操作以使用本地文件以某种方式构建图像?或者有没有更好的方法来解决这个问题?

我的 GitHub 操作文件

name: Build and deploy project to Docker Hub

on:
 push:
   branches:
     - master

jobs:


 build:
   runs-on: 'ubuntu-latest'

   steps:
   - uses: actions/checkout@v2

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

   - name: Log in to Docker Hub - Main web app container registry
     uses: docker/login-action@v1
     with:
       username: ${{ secrets.USERNAME }}
       password: ${{ secrets.PASSWORD }}

   - name: Build and push Main web app container image to registry
     uses: docker/build-push-action@v2
     with:
       push: true
       tags: ${{ secrets.USERNAME }}/project:latest
       file: ./Dockerfile.prod

【问题讨论】:

    标签: docker github-actions dockerhub


    【解决方案1】:

    现在我觉得自己很愚蠢:)

    我全神贯注于如何通过将其包含在映像的构建阶段来解决它,但没有想到当您启动构建的映像时,您可以选择使用驻留在您正在启动 docker 映像的机器。

    很简单:

    1. 使用 SCP 将包含我的证书文件的文件夹从我的 GitHub 存储库的本地版本复制到我的服务器上的远程版本的存储库,例如:

    scp -r $(pwd)/Certificates_prod user@server:/path/to/repo/on/server

    1. 进入您的 docker-compose 文件并进入应该使用证书文件的容器下,并将文件夹添加为已安装的卷,例如:
    restart: always
    image: index.docker.io/username/reponame
    command: gunicorn myrepo.wsgi:application --bind 0.0.0.0:8000 
    volumes:
      - /local/path/to/Certificates_prod:/remote/path/to/your/repo
    

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 2020-03-21
      • 2021-01-01
      • 2022-08-21
      • 2018-09-29
      • 1970-01-01
      • 2021-02-27
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多