add docker builds, changed name to picca

This commit is contained in:
Bryson Steck 2025-07-20 19:41:24 -06:00
parent c705c3514d
commit d56ab2ff64
Signed by: bryson
SSH key fingerprint: SHA256:XpKABw/nP4z8UVaH+weLaBnEOD86+cVwif+QjuYLGT4
5 changed files with 74 additions and 24 deletions

40
Cargo.lock generated
View file

@ -364,26 +364,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad"
[[package]]
name = "ppv-lite86"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
dependencies = [
"zerocopy",
]
[[package]]
name = "proc-macro2"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [
"unicode-ident",
]
[[package]]
name = "psha"
version = "0.3.0"
name = "picca"
version = "0.3.1"
dependencies = [
"ascon-hash",
"belt-hash",
@ -411,6 +393,24 @@ dependencies = [
"whirlpool",
]
[[package]]
name = "ppv-lite86"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
dependencies = [
"zerocopy",
]
[[package]]
name = "proc-macro2"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.40"

View file

@ -1,6 +1,6 @@
[package]
name = "psha"
version = "0.3.0"
name = "picca"
version = "0.3.1"
edition = "2021"
[dependencies]

View file

@ -1,7 +1,7 @@
alias build := build-release
version := `cat Cargo.toml | grep -m1 version | awk -F' ' '{print $3}' | sed 's|"||g'`
major_version := `echo {{version}} | awk -F'.' '{print$1}'`
major_version := shell("echo $1 | awk -F'.' '{print$1}'", version)
uid := `id -u`
gid := `id -g`
date := `date -u --rfc-3339=seconds`
@ -15,7 +15,7 @@ build-release:
build-debug:
cargo build
build-docker:
build-docker: clean
docker build -t picca:{{version}} -t picca:{{major_version}} -t picca:latest \
--build-arg VERSION={{version}} --build-arg DATE="{{date}}" -f docker/Dockerfile .
@ -30,3 +30,6 @@ push-docker-latest: build-docker push-docker
docker tag picca:{{version}} forge.steck.dev/bryson/picca:latest
docker push forge.steck.dev/bryson/picca:latest
docker image rm forge.steck.dev/bryson/picca:latest
clean:
cargo clean

30
docker/Dockerfile Normal file
View file

@ -0,0 +1,30 @@
FROM rust:1-alpine AS build
ENV PICCA_DOCKER="true"
WORKDIR /usr/src/picca
COPY . .
RUN apk upgrade --no-cache && apk add musl-dev
RUN cargo install --path . && cargo clean
FROM alpine:3 AS package
ARG VERSION
ARG DATE
LABEL org.opencontainers.image.title="picca"
LABEL org.opencontainers.image.authors="bryson@steck.dev"
LABEL org.opencontainers.image.version="${VERSION}"
LABEL org.opencontainers.image.url="https://forge.steck.dev/bryson/-/packages/container/picca/${VERSION}"
LABEL org.opencontainers.image.source="https://forge.steck.dev/bryson/picca"
LABEL org.opencontainers.image.created="${DATE}"
RUN apk upgrade --no-cache
RUN mkdir /etc/picca
COPY ./docker/entrypoint.sh /usr/local/bin/entrypoint.sh
COPY --from=build /usr/src/picca /usr/src
COPY --from=build /usr/local/cargo/bin/picca /usr/local/bin
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

17
docker/entrypoint.sh Executable file
View file

@ -0,0 +1,17 @@
#!/bin/sh
# Entrypoint file for picca Docker containers
if [ -z "$UID" ]; then
echo "UID not set! Setting to id $(id -u)"
export UID=$(id -u)
fi
if [ -z "$GID" ]; then
echo "GID not set! Setting to id $(id -g)"
export GID=$(id -g)
fi
addgroup -g $GID dockeruser
adduser -u $UID -G $(grep :$GID: /etc/group | awk -F: '{print $1}') -D dockeruser
su -p - dockeruser -c "picca $@"