Skip to content

Instantly share code, notes, and snippets.

@morganabc
Created March 4, 2024 13:55
Show Gist options
  • Save morganabc/7fe9970f2902b33e56eda8ad85a8319b to your computer and use it in GitHub Desktop.
Save morganabc/7fe9970f2902b33e56eda8ad85a8319b to your computer and use it in GitHub Desktop.
Gitea Docker
#!/bin/bash
set -e
mkdir -p /tmp/gitea
cat << EOF > /tmp/gitea/Containerfile
FROM debian:12
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get install -y openssh-server git wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mkdir /var/run/sshd \
&& echo "PasswordAuthentication no" >> /etc/ssh/sshd_config \
&& echo "PermitRootLogin no" >> /etc/ssh/sshd_config
RUN wget -O gitea https://dl.gitea.io/gitea/1.21.7/gitea-1.21.7-linux-amd64 \
&& chmod +x gitea \
&& mv gitea /usr/local/bin/gitea
RUN adduser --system --uid 1000 --group --shell /bin/bash --gecos 'Git' \
--disabled-password --home /home/git git
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 22 3000
ENTRYPOINT ["/entrypoint.sh"]
EOF
cat << EOF > /tmp/gitea/entrypoint.sh
#!/bin/bash
set -e
/usr/sbin/sshd
su git -s /bin/bash -c 'GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini'
EOF
docker build -t gitea -f /tmp/gitea/Containerfile /tmp/gitea
rm /tmp/gitea/{Containerfile,entrypoint.sh}
rmdir /tmp/gitea
mkdir -p gitea config
chown 1000 -R gitea config
docker stop gitea; docker rm gitea;
docker run -d --name gitea -v ./gitea:/var/lib/gitea -v ./config:/etc/gitea -p 3322:22 -p 3380:3000 gitea
docker logs gitea -f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment