mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-09-10 12:12:32 +02:00
- VOLUME for ‘/data’ - Usage of S6 as PID 1 Process - Usage of ‘socat’ so linked container (like databases) are binded to localhost - OpenSSH, Socat Link and Gogs are supervised using S6 - Size of container reduced to ~75Mo
31 lines
987 B
Docker
31 lines
987 B
Docker
FROM alpine:3.2
|
||
MAINTAINER roemer.jp@gmail.com
|
||
|
||
# Install system utils & Gogs runtime dependencies
|
||
ADD https://github.com/tianon/gosu/releases/download/1.5/gosu-amd64 /usr/sbin/gosu
|
||
RUN echo "@edge http://dl-4.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories \
|
||
&& echo "@community http://dl-4.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories \
|
||
&& apk -U --no-progress upgrade \
|
||
&& apk -U --no-progress add ca-certificates git linux-pam s6@edge curl openssh socat \
|
||
&& chmod +x /usr/sbin/gosu
|
||
|
||
# Configure SSH
|
||
COPY docker/sshd_config /etc/ssh/sshd_config
|
||
|
||
# Configure Go and build Gogs
|
||
ENV GOPATH /tmp/go
|
||
ENV PATH $PATH:$GOPATH/bin
|
||
|
||
COPY . /app/gogs/
|
||
WORKDIR /app/gogs/
|
||
RUN ./docker/build.sh
|
||
|
||
ENV GOGS_CUSTOM /data/gogs
|
||
|
||
# Create git user for Gogs
|
||
RUN adduser -D -g 'Gogs Git User' git -h /data/git/ -s /bin/sh && passwd -u git
|
||
RUN echo "export GOGS_CUSTOM=/data/gogs" >> /etc/profile
|
||
|
||
VOLUME ["/data"]
|
||
EXPOSE 22 3000
|
||
CMD ["./docker/start.sh"]
|