Итак, я только что перешел из Cloud Shell в Google Cloud, чтобы создать образ докера.
То, что я сделал и все работало нормально, это с помощью этой простой команды:
pack build my-app-image --builder gcr.io/buildpacks/builder:v1 --path .
Хотя мой Procfile просто такой:
web: uvicorn main:app --host=0.0.0.0 --port=${PORT:-8080} --app-dir ./src
Где --path . мой текущий проект репозитория, который был извлечен с помощью git pull.
Как создать workflows.yaml для действий GitHub?





name: Build and Deploy with Buildpacks
on:
push:
branches:
- main # Trigger the workflow on push to the main branch
pull_request:
branches:
- main # Trigger the workflow on pull requests to the main branch
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Pack CLI
run: |
sudo add-apt-repository ppa:cncf-buildpacks/pack-cli
sudo apt-get update
sudo apt-get install pack-cli
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image using Buildpacks
run: |
pack build ${{ secrets.DOCKER_USERNAME }}/my-image --builder gcr.io/buildpacks/builder:v1 --path .
docker push ${{ secrets.DOCKER_USERNAME }}/my-image:latest
Для языка ржавчины я использую это:
name: Rust - Buildpack
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Pack CLI
uses: buildpacks/github-actions/[email protected]
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image using Buildpacks
run: |
pack build ${{ secrets.DOCKER_USERNAME }}/rust-rocket-buildpacks --buildpack docker.io/paketocommunity/rust --builder paketobuildpacks/builder-jammy-full --path .
docker push ${{ secrets.DOCKER_USERNAME }}/rust-rocket-buildpacks:latest