簡體   English   中英

使用 docker/build-push-action@v3 github 操作,不會復制嵌套的隱藏文件夾

[英]Using docker/build-push-action@v3 github action, a nested hidden folder isn't copied

我正在使用 github 操作進行構建並將圖像推送到我的谷歌工件注冊表。

工作流程中有許多步驟,可以將其濃縮為相關的內容......

      - name: Checkout code
        uses: actions/checkout@v3

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

      - name: Authenticate to google cloud
        uses: (external workflow... redacted...)

      - name: Download workspace data
        uses: actions/download-artifact@v3 
        (this step pulls down a folder from a previous workflow, containing the .next folder)

      - name: Build and push
        uses: docker/build-push-action@v3
        with:
          platforms: ${{ inputs.build_arm && 'linux/amd64,linux/arm64' || 'linux/amd64'}}
          tags: ${{ inputs.image_name }}:${{ inputs.image_tag }}
          build-args: |
            ${{secrets.build-args}}
            ${{inputs.build-args}}
          secrets: |
            ${{secrets.build-secrets}}

在構建的工作目錄(和 docker 上下文)中,有一個名為next的文件夾,其中包含另一個名為.next的隱藏文件夾。

Dockerfile 有一個步驟:

COPY next /opt/auth-service/next

問題

我的問題是,在構建和推送階段,上面的 COPY 階段復制了除隱藏文件夾之外next文件夾的所有內容,我似乎無法找出原因。

我試過的

我在構建/推送步驟之前使用 tmate ( mxschmitt/action-tmate@v3 ) 到 SSH 進入 github 動作運行器,並且可以確認文件夾next/.next存在。 在 github 運行程序上,我還可以運行docker build -t <image-name>. 然后當我將該圖像下載到我的筆記本電腦並運行它時 - 下一個/.next 文件夾就在那里。 只是不是在通過docker/build-push-action@v3操作構建時。

任何想法為什么會這樣?

docker/build-push-action@v3的文檔說:

請小心,因為構建步驟之前的步驟中的任何文件突變都將被忽略,包括.dockerignore文件的處理,因為上下文基於 Git 引用。 但是,您可以使用Path 上下文,在actions/checkout操作旁邊使用context輸入來刪除此限制。

您需要添加context: . :

jobs:
  docker:
    steps:
      - name: Build and push
        uses: docker/build-push-action@v3
        with:
          context: .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM