簡體   English   中英

如何在我的 github 操作中指定 dockerfile 位置?

[英]How do I specify the dockerfile location in my github action?

我正在向我的 asp.net 核心應用程序添加一個 dockerfile,它位於一個子目錄中。 我正在嘗試創建一個 github 操作來運行 dockerfile,但該操作很難找到它。 我的文件夾結構是:

api/
|--Data/
|--Service/
|--|--Dockerfile
|--Tests/
|--MyProject.sln
frontend/

我的 action.yml 是:


name: Docker Image CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Build the Docker image
      run: docker build ./api/Service/ --file Dockerfile --tag my-image-name:$(date +%s)

當操作運行時,我在 docker 構建中收到以下錯誤。

Run docker build ./api/Service/ --file Dockerfile --tag my-image-name:$(date +%s)
  docker build ./api/Service/ --file Dockerfile --tag my-image-name:$(date +%s)
  shell: /bin/bash -e {0}
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/runner/work/MyProject-actions/MyProject-actions/Dockerfile: no such file or directory
##[error]Process completed with exit code 1.

任何幫助,將不勝感激!

這一行有一個問題:

run: docker build ./api/Service/ --file Dockerfile --tag my-image-name:$(date +%s)

--file標志的使用是錯誤的。 正確的方法是:

run: docker build --file ./api/Service/Dockerfile --tag my-image-name:$(date +%s)

另一種指定文件的方法是以這種方式執行步驟部分。 我從我的 github 操作流程中復制粘貼。

steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_PASSWORD }}

      - name: Build and push register app
        uses: docker/build-push-action@v3
        with:
          push: true
          file: ./register/Dockerfile
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/register:latest

您可以查看此鏈接https://github.com/docker/build-push-action以了解在構建和推送 docker 圖像時可以包括的更多選項。

暫無
暫無

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

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