this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

add ability to override UID and GID at runtime

pomdtr 3dba6225 60819e15

+36 -7
+15 -7
Dockerfile
··· 4 4 COPY go.mod go.sum ./ 5 5 RUN go mod download 6 6 COPY . . 7 - 8 7 ARG SMALLWEB_VERSION=dev 9 8 RUN go build -ldflags="-s -w -X github.com/pomdtr/smallweb/build.Version=${SMALLWEB_VERSION}" -o smallweb 10 9 11 10 FROM debian:bookworm-slim 12 11 COPY --from=builder /build/smallweb /usr/local/bin/smallweb 13 12 14 - RUN apt update && apt install -y git unzip curl && rm -rf /var/lib/apt/lists/* 13 + # Install required packages 14 + RUN apt update && apt install -y git unzip curl gosu && rm -rf /var/lib/apt/lists/* 15 15 16 + # Install Deno 16 17 ARG DENO_VERSION=v2.2.2 17 18 RUN curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local/deno sh -s "$DENO_VERSION" 18 19 ENV PATH="/usr/local/deno/bin:$PATH" 19 20 21 + # Set up default user with ID 1000 20 22 ARG UID=1000 21 23 ARG GID=1000 22 - RUN groupadd -g $GID smallweb && useradd -m -s /bin/bash -u $UID -g $GID smallweb 23 - RUN mkdir /smallweb && chown smallweb:smallweb /smallweb 24 + RUN groupadd -g $GID smallweb && useradd -m -s /bin/bash -u $GID -g $1000 smallweb 24 25 25 - USER smallweb 26 + # Create app directory 27 + RUN mkdir -p /smallweb && chown smallweb:smallweb /smallweb 28 + 29 + # Add entrypoint script 30 + COPY entrypoint.sh /entrypoint.sh 31 + RUN chmod +x /entrypoint.sh 32 + 26 33 VOLUME /smallweb 27 34 WORKDIR /smallweb 28 35 EXPOSE 7777 2222 29 - ENTRYPOINT ["/usr/local/bin/smallweb"] 30 - CMD [ "up", "--enable-crons", "--addr", ":7777", "--ssh-addr", ":2222"] 36 + 37 + ENTRYPOINT ["/entrypoint.sh"] 38 + CMD ["up", "--enable-crons", "--addr", ":7777", "--ssh-addr", ":2222"]
+21
entrypoint.sh
··· 1 + #!/bin/bash 2 + set -e 3 + 4 + # Get current UID/GID from environment or use defaults 5 + USER_ID=${PUID:-1000} 6 + GROUP_ID=${PGID:-1000} 7 + 8 + echo "Starting with UID: $USER_ID, GID: $GROUP_ID" 9 + 10 + # Update the user to match desired UID/GID if needed 11 + if [ "$USER_ID" != "1000" ] || [ "$GROUP_ID" != "1000" ]; then 12 + echo "Updating user 'smallweb' with new UID:GID -> $USER_ID:$GROUP_ID" 13 + groupmod -g "$GROUP_ID" smallweb 14 + usermod -u "$USER_ID" -g "$GROUP_ID" smallweb 15 + fi 16 + 17 + # Ensure correct ownership of the application directory 18 + chown -R smallweb:smallweb /smallweb 19 + 20 + # Execute the command as the smallweb user 21 + exec gosu smallweb:smallweb /usr/local/bin/smallweb "$@"