我們打算使用Git Actions來在每次提交時構建我們的Docker。
這是我們目前的Git Actions yml:
# This is a basic workflow to help you get started with Actions。
name: CI
# 控制作業流的運行時間 CI
ON:
push:/span>
分支:
- '**'
pull_request:/span>
分支:
- '**'/span>
# 允許你在 "行動 "選項卡中手動運行此作業流程 # 允許你在 "行動 "選項卡中手動運行此作業流程。
作業流_dispatch:
# 一個作業流的運行是由一個或多個作業組成的,這些作業可以按順序運行或并行運行。
jobs:
docker-build:
runs-on: ubuntu-latest
步驟:
- 用途: actions/checkout@v2
- name: Navigate to app folder
運行: cd app
- name:/span> Open Directory
作業-目錄: app
運行: |
ls -la
- name: Build docker image
運行: docker build 。 -t app_name f Dockerfile
我得到的錯誤是:
unable to prepare context: unable to evaluate symlink 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-- 1 runner docker 93 Sep 15 13 。 03 . env-template
-rw-r-- 1 runner docker 655 Sep 15 13。 03 Dockerfile Dockerfile
我試過:
- 同時使用
actions/checkout@v1和actions/checkout@v2 - cd進入帶有Dockerfile的目錄 。
- 將Dockerfile目錄設為作業目錄 。
為什么docker build找不到我的Dockerfile?
uj5u.com熱心網友回復:
請看檔案這里:"每個運行關鍵字代表運行者環境中的一個新行程和外殼。當你提供多行命令時,每一行都在同一個shell中運行。"
這意味著在cd步驟之后,作業目錄并沒有持續存在。你的ls步驟是有效的,因為你為它明確設定了作業目錄。
你必須在構建命令的同一運行步驟中cd:
- name: Build docker image
運行: |
cd app
docker build . -t app_name -f Dockerfile
或者你可以把你的dockerfile的路徑給docker:
- name: Build docker image
run: docker build app t app_name
-f的默認值是PATH/Dockerfile,其中PATH是上面的app。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/309170.html
標籤:
上一篇:React導航-右鍵功能
下一篇:在代碼空間中預先配置容器注冊表
