gpt4 book ai didi

docker - 使用 GitHub 操作构建 Docker 镜像 : No such file or directory

转载 作者:行者123 更新时间:2023-12-05 02:39:13 32 4
gpt4 key购买 nike

我们打算在每次提交时使用 Git Actions 来构建我们的 Docker。

这是我们当前的 Git 操作 yml:

# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the workflow will run
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:

docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Navigate to app folder
run: cd app
- name: Open Directory
working-directory: app
run: |
ls -la
- name: Build docker image
run: docker build . -t app_name -f Dockerfile

我得到的错误是:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/runner/work/git-root/app/Dockerfile: no such file or directory

但在我的 ls -la 中,我看到 Dockerfile 存在:

total 48
drwxr-xr-x 4 runner docker 4096 Sep 15 13:03 .
drwxr-xr-x 6 runner docker 4096 Sep 15 13:03 ..
-rw-r--r-- 1 runner docker 93 Sep 15 13:03 .env-template
-rw-r--r-- 1 runner docker 655 Sep 15 13:03 Dockerfile

我试过:

  • 同时使用 actions/checkout@v1actions/checkout@v2
  • cd 进入包含 Dockerfile 的目录
  • 将 Dockerfile 目录设置为工作目录

为什么 docker build 找不到我的 Dockerfile?

最佳答案

查看文档 here :

Each run keyword represents a new process and shell in the runner environment. When you provide multi-line commands, each line runs in the same shell.

这意味着工作目录在 cd 步骤后不会保留。您的 ls 步骤有效,因为您明确为其设置了工作目录。

您必须在与构建命令相同的运行步骤中cd:

      - name: Build docker image
run: |
cd app
docker build . -t app_name -f Dockerfile

或者您可以为 docker 提供您的 dockerfile 的路径:

      - name: Build docker image
run: docker build app -t app_name

-f的默认值是PATH/Dockerfile,其中PATH是上面的app

关于docker - 使用 GitHub 操作构建 Docker 镜像 : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69204872/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com