如何在我的 Github Action 中指定 Dockerfile 的位置?

3
我正在为我的asp.net core应用程序添加一个dockerfile,它位于子目录中。我正在尝试创建一个Github Action来运行dockerfile,但是该操作无法找到它。 我的文件夹结构如下:
api/
|--Data/
|--Service/
|--|--Dockerfile
|--Tests/
|--MyProject.sln
frontend/

My action.yml is:


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.


任何帮助将不胜感激!
2个回答

5

另一种指定文件的方法是按照以下步骤进行。我从我的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镜像时可以包括的更多选项。


5

这行存在问题:

run: docker build ./api/Service/ --file Dockerfile --tag my-image-name:$(date +%s)
< p > 使用--file标志的方式是错误的。正确的方式如下:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接