feature: running image first version

This commit is contained in:
RouxAntoine 2023-08-02 21:35:49 +02:00
parent 7d48de6c9d
commit 920b017342
Signed by: antoine
GPG Key ID: 098FB66FC0475E70
4 changed files with 97 additions and 0 deletions

53
Dockerfile Normal file
View File

@ -0,0 +1,53 @@
FROM golang:1.20.6-bookworm as builder
ARG TARGETARCH
ARG TARGETOS
ENV VERSION 498fcaa7c3413a2d9d0aaf67cfe5fdeec76bff71
RUN apt update -y && \
mkdir /perkeep && \
cd /perkeep && \
git init && \
git remote add origin https://github.com/perkeep/perkeep.git && \
git fetch origin $VERSION && \
git reset --hard FETCH_HEAD
WORKDIR /perkeep
RUN go run make.go --arch $TARGETARCH --os $TARGETOS
FROM alpine:3.18.2
ENV USER perkeep
ENV GROUP perkeep
ENV UID 1000
ENV GID 1001
RUN addgroup -S $GROUP --gid $GID && \
adduser \
--disabled-password \
--gecos "" \
--home "/$USER" \
--shell "/bin/sh" \
--ingroup "$GROUP" \
--uid "$UID" \
"$USER" && \
apk add --no-cache libc6-compat gpg
USER $USER
RUN mkdir /perkeep/data && \
mkdir /perkeep/config
COPY --chown=$USER:$GROUP --chmod=750 --from=builder /go/bin/* /usr/local/bin/
COPY --chown=$USER:$GROUP --chmod=750 server-config.json /perkeep/config/server-config-custom.json
COPY --chown=$USER:$GROUP --chmod=750 docker-entrypoint.sh /docker-entrypoint.sh
VOLUME /perkeep/data
VOLUME /perkeep/config
EXPOSE 3179
# /docker-entrypoint.sh perkeepd -configfile /perkeep/config/server-config-custom.json
ENTRYPOINT ["/docker-entrypoint.sh", "perkeepd", "-configfile", "/perkeep/config/server-config-custom.json"]

21
Makefile Normal file
View File

@ -0,0 +1,21 @@
.PHONY: imagePerkeep
REGISTRY_NAME=docker.registry
# linux/arm/v7
# linux/arm/v6
# linux/arm64
# linux/amd64
PLATFORM=linux/amd64,linux/arm64
#VERBOSITY=info
VERBOSITY=debug
## build
imagePerkeep:
docker manifest rm $(REGISTRY_NAME):5000/perkeep:latest || true
docker-multi-arch-builder build -n perkeep --platforms $(PLATFORM) -v $(VERBOSITY)
## management
status:
@curl -s $(REGISTRY_NAME):5000/v2/_catalog | jq

12
docker-entrypoint.sh Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
if [ ! -f /perkeep/config/identity-secring.gpg ];
then
pk put init -newkey
mv perkeep/.config/perkeep/identity-secring.gpg /perkeep/config/
IDENTITY=$(sed -n -e '/identity/ s/.*:.*"\(.*\)".*/\1/p' /perkeep/.config/perkeep/client-config.json | tee /dev/tty)
sed -i -e "s/TO_REPLACE/$IDENTITY/g" /perkeep/config/server-config-custom.json
rm -r /perkeep/.config
fi
exec "$@"

11
server-config.json Normal file
View File

@ -0,0 +1,11 @@
{
"auth": "localhost",
"listen": "0.0.0.0:3179",
"camliNetIP": "",
"identity": "TO_REPLACE",
"identitySecretRing": "/perkeep/config/identity-secring.gpg",
"blobPath": "/perkeep/data/blobs",
"packRelated": true,
"sqlite": "/perkeep/data/index.sqlite",
"shareHandler": false
}