Add docker support for Trac and Gitea
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
This commit is contained in:
commit
1852f1aa2d
|
@ -0,0 +1,60 @@
|
||||||
|
# Docker compose file to support dev+ops activities
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
trac:
|
||||||
|
build:
|
||||||
|
context: docker/trac
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
user: appuser
|
||||||
|
group: appgroup
|
||||||
|
uid: "${_UID:-1000}"
|
||||||
|
gid: "${_GID:-1000}"
|
||||||
|
volumes:
|
||||||
|
- ./trac:/var/lib/appdata
|
||||||
|
- ./trac/public_html:/trac/chrome
|
||||||
|
- ./trac/repos:/home/sources/git
|
||||||
|
working_dir: /var/lib/appdata
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
hostname: trac.local
|
||||||
|
container_name: trac.local
|
||||||
|
ports:
|
||||||
|
- "${TRAC_PORT:-8000}:${TRAC_PORT:-8000}/tcp"
|
||||||
|
#command: /bin/bash
|
||||||
|
command: tracd --port ${TRAC_PORT:-8000} --auth="Tahoe-LAFS,./Tahoe-LAFS/conf/user_passwd,tahoe-lafs.org" ./Tahoe-LAFS
|
||||||
|
network_mode: "bridge"
|
||||||
|
# Prevents container to hang the host
|
||||||
|
# Requires `... --compatibility run ...`
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1.5'
|
||||||
|
memory: 256M
|
||||||
|
|
||||||
|
gitea:
|
||||||
|
build:
|
||||||
|
context: docker/gitea
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./gitea/conf:/etc/gitea
|
||||||
|
- ./gitea/data:/var/lib/gitea
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
working_dir: /var/lib/appdata
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "2222:2222"
|
||||||
|
#command: /bin/bash
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
hostname: gitea.local
|
||||||
|
container_name: gitea.local
|
||||||
|
network_mode: "bridge"
|
||||||
|
# Prevents container to hang the host
|
||||||
|
# Requires `... --compatibility run ...`
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1.5'
|
||||||
|
memory: 256M
|
|
@ -0,0 +1,6 @@
|
||||||
|
##############################
|
||||||
|
# General level requirements #
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# Pull official base image from DockerHub
|
||||||
|
FROM gitea/gitea:1.21.7-rootless@sha256:5d433ef2ebae7eae7b0d0ec42263645a9d200d342fc31ea5bca9745611f89811
|
|
@ -0,0 +1,65 @@
|
||||||
|
##############################
|
||||||
|
# General level requirements #
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# Pull official base image from DockerHub
|
||||||
|
FROM python:2.7.18-slim-buster@sha256:6c1ffdff499e29ea663e6e67c9b6b9a3b401d554d2c9f061f9a45344e3992363
|
||||||
|
|
||||||
|
# Avoid interactive frontend
|
||||||
|
ENV DEBIAN_FRONTEND="noninteractive"
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# Application level requirements #
|
||||||
|
##################################
|
||||||
|
# Install required packages
|
||||||
|
RUN INSTALL_PKGS="git" && \
|
||||||
|
apt-get -q clean && \
|
||||||
|
apt-get -q update && \
|
||||||
|
apt-get install -y $INSTALL_PKGS && \
|
||||||
|
apt-get -q clean
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# User level requirements #
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# Parameters for default user:group
|
||||||
|
ARG uid=1000
|
||||||
|
ARG user=appuser
|
||||||
|
ARG gid=1000
|
||||||
|
ARG group=appgroup
|
||||||
|
|
||||||
|
# Add user and group for build and runtime
|
||||||
|
# So the output can be owned by the specified uid:gid
|
||||||
|
RUN grep -q ":${gid}:" /etc/group && { \
|
||||||
|
echo "Group ID ${gid} found"; \
|
||||||
|
} || { \
|
||||||
|
echo "Group ID ${gid} NOT found"; \
|
||||||
|
groupadd -g "${gid}" "${group}" && \
|
||||||
|
echo "Group ID ${gid} created"; \
|
||||||
|
}
|
||||||
|
RUN id "${uid}" > /dev/null 2>&1 && { \
|
||||||
|
echo "User ID ${uid} found"; \
|
||||||
|
} || { \
|
||||||
|
echo "User ID ${uid} NOT found"; \
|
||||||
|
useradd -md "/home/${user}" -s /bin/bash -g "${group}" -u "${uid}" "${user}" && \
|
||||||
|
echo "User ID ${uid} created"; \
|
||||||
|
}
|
||||||
|
|
||||||
|
# Switch to non-root user
|
||||||
|
USER ${user}
|
||||||
|
WORKDIR /home/${user}
|
||||||
|
|
||||||
|
# Prepare user variables
|
||||||
|
ENV USER ${user}
|
||||||
|
ENV HOME=/home/${user}
|
||||||
|
ENV PATH="${HOME}/.local/bin:${PATH}"
|
||||||
|
ENV PYTHONPATH="."
|
||||||
|
|
||||||
|
# Upgrade Pip
|
||||||
|
RUN python -m pip install --disable-pip-version-check --no-cache --upgrade "pip==20.3.4"
|
||||||
|
|
||||||
|
# Copy requirements
|
||||||
|
COPY requirements.txt /home/${user}/requirements.txt
|
||||||
|
|
||||||
|
# Install requirements
|
||||||
|
RUN python -m pip install --user --no-cache --upgrade -r requirements.txt
|
|
@ -0,0 +1,13 @@
|
||||||
|
Babel==2.9.1
|
||||||
|
docutils==0.18.1
|
||||||
|
Genshi==0.7.7
|
||||||
|
html5lib==1.1
|
||||||
|
Pygments==2.5.2
|
||||||
|
pytz==2024.1
|
||||||
|
six==1.16.0
|
||||||
|
textile==3.0.4
|
||||||
|
Trac==1.0.13
|
||||||
|
TracAccountManager==0.6.0
|
||||||
|
TracHTTPAuth==1.2
|
||||||
|
TracXMLRPC==1.1.9
|
||||||
|
webencodings==0.5.1
|
Loading…
Reference in New Issue