Change container build workflow to podman

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/49/head
trivernis 2 years ago
parent 4b162e5a14
commit 69da43cd01
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -28,23 +28,28 @@ jobs:
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ hashFiles('Cargo.lock') }}
path: /var/lib/containers/
key: ${{ runner.os }}-podman-${{ hashFiles('Cargo.lock') }}
restore-keys: |
${{ runner.os }}-buildx-
${{ runner.os }}-podman-
- name: Build
id: build-image
uses: redhat-actions/buildah-build@v2
with:
context: .
layers: true
containerfiles: ./Containerfile
platforms: ${{github.event.inputs.platforms}}
image: trivernis/tobi:latest
- name: Login to DockerHub
uses: docker/login-action@v1
uses: redhat-actions/podman-login@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
registry: docker.io
- name: Push
uses: redhat-actions/push-to-registry@v2
with:
context: .
file: ./Dockerfile
platforms: ${{github.event.inputs.platforms}}
push: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
tags: |
trivernis/tobi:latest
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: docker.io

@ -1,9 +1,7 @@
# syntax=docker/dockerfile:1.0-experimental
ARG QALCULATE_VERSION=4.1.1
ARG DEBIAN_RELEASE=bullseye
FROM rust:slim-${DEBIAN_RELEASE} AS builder
FROM docker.io/rust:slim-${DEBIAN_RELEASE} AS builder
RUN apt-get update
RUN apt-get install -y build-essential libssl-dev libopus-dev libpq-dev pkg-config
WORKDIR /usr/src
@ -14,12 +12,18 @@ COPY src ./src
COPY bot-coreutils ./bot-coreutils
COPY bot-database ./bot-database
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=target \
--mount=type=cache,target=/usr/src/tobi/target \
cargo build --release
RUN mkdir /tmp/tobi
RUN --mount=type=cache,target=target cp target/release/tobi-rs /tmp/tobi/
RUN --mount=type=cache,target=/usr/src/tobi/target cp target/release/tobi-rs /tmp/tobi/
FROM docker.io/bitnami/minideb:${DEBIAN_RELEASE} AS runtime-base
RUN apt update
RUN apt install openssl libopus0 ffmpeg python3 python3-pip libpq5 pkg-config -y
RUN pip3 install youtube-dl
RUN rm -rf /var/lib/{apt,dpkg,cache,log}/ /var/cache
FROM bitnami/minideb:${DEBIAN_RELEASE} AS qalculate-builder
FROM docker.io/bitnami/minideb:${DEBIAN_RELEASE} AS qalculate-builder
ARG QALCULATE_VERSION
RUN mkdir /tmp/qalculate
WORKDIR /tmp/qalculate
@ -28,11 +32,7 @@ RUN wget https://github.com/Qalculate/qalculate-gtk/releases/download/v${QALCULA
RUN tar xf qalculate.tar.xz
RUN cp qalculate-${QALCULATE_VERSION}/* /tmp/qalculate
FROM bitnami/minideb:${DEBIAN_RELEASE}
RUN apt update
RUN apt install openssl libopus0 ffmpeg python3 python3-pip libpq5 pkg-config -y
FROM runtime-base
COPY --from=qalculate-builder /tmp/qalculate/* /usr/bin/
COPY --from=builder /tmp/tobi/tobi-rs .
RUN pip3 install youtube-dl
RUN rm -rf /var/lib/{apt,dpkg,cache,log}/ /var/cache
ENTRYPOINT ["/tobi-rs"]
Loading…
Cancel
Save