在 GitHub 操作中从云存储下载文件夹并将其移动到 Docker 容器内不起作用

问题描述 投票:0回答:1

我的 GitHub 操作

name: Deploy

on:
  workflow_dispatch:

jobs:
  deploy: 
    runs-on: ubuntu-latest
    environment: default
    permissions:
      contents: 'read'
      id-token: 'write'
    steps:
    - name: Checkout
      uses: actions/checkout@v3

    - name: Setup Node
      uses: actions/setup-node@v3
      with:
        node-version: 16

    - id: auth
      name: "Auth"
      uses: 'google-github-actions/auth@v2'
      with:
        token_format: access_token
        workload_identity_provider: ${{ secrets.WIF_PROVIDER }}
        service_account: ${{ secrets.SA_EMAIL }}

    - name: 'Set up Cloud SDK'
      uses: 'google-github-actions/setup-gcloud@v2'
      with:
        version: '>= 363.0.0'
        
    - name: 'Use gcloud CLI'
      run: 'gcloud info'
      
    #- name: 'Last ned BASED model fra cloud bucket'
      #run: 'gcloud storage cp -r gs://tiltak-mlops/model_llama_2 .'
    - name: Print file list 1
      run: |
          find . -type f -print | sort
#         find . -type d -print | sort

    - name: 'Last ned LORA fra cloud bucket'
      run: |
          mkdir fine_tuned_model
          gcloud storage cp -r gs://tiltak-mlops/fine_tuned_lora fine_tuned_model/

    - name: Print file list 2
      run: |
          find . -type f -print | sort
#         find . -type d -print | sort

    - uses: docker/login-action@v3
      name: Login to Google Artifact Registry
      with:
        registry: europe-docker.pkg.dev
        username: oauth2accesstoken
        password: ${{ steps.auth.outputs.access_token }}
    
    - run: echo "TAG=$(git log -1 --pretty=%ad --date=format:%Y-%m-%d)-$(git log --pretty=format:'%h' -n 1)" >> $GITHUB_ENV

    - uses: docker/build-push-action@v5
      with:
        file: Dockerfile
        push: true
        tags: europe-docker.pkg.dev/team-tiltak-dev-2137/tryggtekst/app:${{ env.TAG }}

#    - name: "deploy app til cloud run"
#      run: "gcloud run deploy <service-name> --image=<image-uri> --region=europe --allow-unauthenticated"

我的 docker 文件

FROM python:3.11

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt


COPY . .

CMD ["python", "app.py"]

我的问题是当docker完成构建时,名为fine_tuned_model的下载文件夹没有被复制到docker容器内。它复制 GitHub 上的其他所有内容,但从存储桶中下载的文件夹除外。我什至尝试手动复制 dockerfile 中的目录,但没有成功!

如您所见,我还列出了步骤之前和之后的 dir 文件,以查看是否正在下载它。并且正在下载fine_tuned_model。

docker google-cloud-platform dockerfile github-actions
1个回答
0
投票

build-push-action
有两种类型的上下文:

  • git
  • 路径

您正在使用 git context,因此构建步骤之前的步骤中的任何文件突变都将被忽略。但是,您可以使用 Path context 将上下文输入与 actions/checkout 操作一起使用来消除此限制。

© www.soinside.com 2019 - 2024. All rights reserved.