[英]Is there a way to set path for docker build with the github action plugin docker/build-push-action@v1
[英]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.