services/templates/forgejo/Dockerfile

44 lines
1.5 KiB
Docker

# This is a custom made Dockerfile for Gitea which is inspired from
# the official Dockerfile.rootless from https://github.com/go-gitea/gitea/
FROM alpine:3.17
ENV FORGEJO_WORK_DIR=${FORGEJO_WORK_DIR} \
FORGEJO_CUSTOM=${FORGEJO_CUSTOM} \
FORGEJO_APP_INI=${FORGEJO_APP_INI} \
FORGEJO_BIN=${FORGEJO_BIN} \
FORGEJO_VERSION=${FORGEJO_VERSION} \
HOME=${FORGEJO_HOME}
RUN apk update && apk upgrade && apk --no-cache add \
bash \
ca-certificates \
gettext \
git \
curl \
gnupg \
openssh-keygen \
&& addgroup -S -g ${FLOW_GID} flow \
&& adduser -S -H -D -h ${FORGEJO_HOME} -s /bin/bash -u ${FORGEJO_FLOW_UID} -G flow git \
&& mkdir -p ${FORGEJO_DATA_CONTAINER_DIR} ${FORGEJO_TMP} \
&& chown git ${FORGEJO_DATA_CONTAINER_DIR} && chmod 0700 ${FORGEJO_DATA_CONTAINER_DIR} \
&& chown git ${FORGEJO_TMP} && chmod 0700 ${FORGEJO_TMP}
ADD --chown=root:root forgejo-${FORGEJO_VERSION}-linux-amd64 ${FORGEJO_BIN}
ADD app.ini ${FORGEJO_APP_INI}
ADD entrypoint.sh /usr/local/bin/entrypoint.sh
ADD --chown=${FORGEJO_FLOW_UID}:${FLOW_GID} dynamic_git.yaml ${FORGEJO_TMP}/
RUN chown -R ${FORGEJO_FLOW_UID}:${FORGEJO_FLOW_UID} ${FORGEJO_APP_INI} \
&& chmod 0400 ${FORGEJO_APP_INI} \
&& chmod a+x ${FORGEJO_BIN} \
&& chmod a+rx /usr/local/bin/entrypoint.sh
USER ${FORGEJO_FLOW_UID}:${FLOW_GID}
WORKDIR /flow/gitea/data
VOLUME ["/flow/gitea/data"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD []