misc: better dockerfile
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
name: Docker Image CI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Log in to Gitea Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.abunchofknowitalls.com
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||
|
||||
- name: Extract metadata for Docker
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: git.abunchofknowitalls.com/${{ gitea.repository }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
+14
-8
@@ -1,17 +1,23 @@
|
||||
FROM rust:1.84.0 as build
|
||||
FROM rust:1.92 AS builder
|
||||
|
||||
RUN rustup target add x86_64-unknown-linux-musl && \
|
||||
apt update && \
|
||||
apt install -y musl-tools musl-dev iputils-ping && \
|
||||
update-ca-certificates
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends musl-tools musl-dev iputils-ping ca-certificates && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY ./src ./src
|
||||
COPY ./Cargo.lock .
|
||||
COPY ./Cargo.toml .
|
||||
WORKDIR /app
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY src ./src
|
||||
|
||||
RUN cargo build --target x86_64-unknown-linux-musl --release
|
||||
|
||||
FROM scratch AS runtime
|
||||
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/status-checker /status-checker
|
||||
COPY --from=builder /usr/bin/ping /usr/bin/ping
|
||||
|
||||
ENV ROCKET_ADDRESS=0.0.0.0
|
||||
ENV ROCKET_PORT=8000
|
||||
|
||||
ENTRYPOINT ["./target/x86_64-unknown-linux-musl/release/status-checker"]
|
||||
ENTRYPOINT ["/status-checker"]
|
||||
|
||||
Reference in New Issue
Block a user