我的 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。
build-push-action
有两种类型的上下文:
您正在使用 git context,因此构建步骤之前的步骤中的任何文件突变都将被忽略。但是,您可以使用 Path context 将上下文输入与 actions/checkout 操作一起使用来消除此限制。