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 && \
|
RUN rustup target add x86_64-unknown-linux-musl && \
|
||||||
apt update && \
|
apt-get update && \
|
||||||
apt install -y musl-tools musl-dev iputils-ping && \
|
apt-get install -y --no-install-recommends musl-tools musl-dev iputils-ping ca-certificates && \
|
||||||
update-ca-certificates
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY ./src ./src
|
WORKDIR /app
|
||||||
COPY ./Cargo.lock .
|
COPY Cargo.toml Cargo.lock ./
|
||||||
COPY ./Cargo.toml .
|
COPY src ./src
|
||||||
|
|
||||||
RUN cargo build --target x86_64-unknown-linux-musl --release
|
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_ADDRESS=0.0.0.0
|
||||||
ENV ROCKET_PORT=8000
|
ENV ROCKET_PORT=8000
|
||||||
|
|
||||||
ENTRYPOINT ["./target/x86_64-unknown-linux-musl/release/status-checker"]
|
ENTRYPOINT ["/status-checker"]
|
||||||
|
|||||||
Reference in New Issue
Block a user