docker images?

This commit is contained in:
dusk 2025-10-08 21:00:51 +00:00
parent 77444bff2e
commit 323377c217
No known key found for this signature in database
3 changed files with 43 additions and 21 deletions

View file

@ -1,23 +1,23 @@
name: Build and push Docker image
on:
workflow_dispatch:
push:
paths:
- '.dockerignore'
- '.github/workflows/dotnet-docker.yml'
- 'ci/Dockerfile.dotnet'
- 'ci/dotnet-version.sh'
- 'Myriad/**'
- 'PluralKit.API/**'
- 'PluralKit.Bot/**'
- 'PluralKit.Core/**'
- ".dockerignore"
- ".github/workflows/dotnet-docker.yml"
- "ci/Dockerfile.dotnet"
- "ci/dotnet-version.sh"
- "Myriad/**"
- "PluralKit.API/**"
- "PluralKit.Bot/**"
- "PluralKit.Core/**"
jobs:
build:
name: '.net docker build'
name: ".net docker build"
runs-on: ubuntu-latest
permissions:
packages: write
if: github.repository == 'PluralKit/PluralKit'
steps:
- uses: docker/login-action@v1
with:

View file

@ -1,22 +1,22 @@
name: Build and push Rust service Docker images
on:
workflow_dispatch:
push:
paths:
- 'crates/**'
- '.dockerignore'
- '.github/workflows/rust.yml'
- 'ci/Dockerfile.rust'
- 'ci/rust-docker-target.sh'
- 'Cargo.toml'
- 'Cargo.lock'
- "crates/**"
- ".dockerignore"
- ".github/workflows/rust.yml"
- "ci/Dockerfile.rust"
- "ci/rust-docker-target.sh"
- "Cargo.toml"
- "Cargo.lock"
jobs:
build:
name: 'rust docker build'
name: "rust docker build"
runs-on: ubuntu-latest
permissions:
packages: write
if: github.repository == 'PluralKit/PluralKit'
steps:
- uses: docker/login-action@v1
if: ${{ !env.ACT }}
@ -35,7 +35,7 @@ jobs:
# https://github.com/docker/build-push-action/issues/378
context: .
file: ci/Dockerfile.rust
push: false
push: false
cache-from: type=registry,ref=ghcr.io/pluralkit/docker-cache:rust
cache-to: type=registry,ref=ghcr.io/pluralkit/docker-cache:rust,mode=max
outputs: .docker-bin

View file

@ -2,6 +2,15 @@ FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
RUN apt-get update && apt-get install -y curl build-essential && \
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
ENV RUSTFLAGS='-C link-arg=-s'
# Install uniffi-bindgen-cs
RUN cargo install uniffi-bindgen-cs --git https://github.com/90-008/uniffi-bindgen-cs
# Restore/fetch dependencies excluding app code to make use of caching
COPY PluralKit.sln /app/
COPY Myriad/Myriad.csproj /app/Myriad/
@ -13,8 +22,21 @@ COPY .git/ /app/.git
COPY Serilog/ /app/Serilog/
RUN dotnet restore PluralKit.sln
# Copy the rest of the code and build
# Copy the rest of the code
COPY . /app
# copy parser code
COPY Cargo.toml /app/
COPY Cargo.lock /app/
COPY crates/ /app/crates
# Generate command parser bindings
RUN mkdir -p app/obj && cargo -Z unstable-options build --package commands --lib --release --artifact-dir app/obj/
RUN uniffi-bindgen-cs "app/obj/libcommands.so" --library --out-dir="app/PluralKit.Bot"
RUN cargo run --package commands --bin write_cs_glue -- "app/PluralKit.Bot/commandtypes.cs"
# build bot
RUN dotnet build -c Release -o bin
# Build runtime stage (doesn't include SDK)