Add Dockerfile

This commit is contained in:
Josh 2020-05-25 23:35:40 -04:00
parent d368a439db
commit 9b1dd36c2d
3 changed files with 62 additions and 1 deletions

19
Dockerfile Normal file
View file

@ -0,0 +1,19 @@
FROM alpine:latest AS builder
ARG XINETD_VERSION=2.3.15.4
ARG VERSION=3.0.1
RUN apk add build-base autoconf automake libtool pkgconf git
RUN git clone -b ${XINETD_VERSION} https://github.com/openSUSE/xinetd.git
RUN cd xinetd && sh ./autogen.sh && ./configure && make
RUN git clone -b ${VERSION} https://github.com/gophernicus/gophernicus.git
RUN cd gophernicus && make
FROM alpine:latest
EXPOSE 70/tcp
VOLUME /var/gopher
COPY --from=builder /xinetd/xinetd /usr/sbin
COPY --from=builder /gophernicus/gophernicus /usr/sbin
COPY xinetd.conf /etc/xinetd.conf
CMD ["/usr/sbin/xinetd", "-dontfork"]

View file

@ -1,2 +1,23 @@
# docker-gophernicus
An Alpine based Gophernicus Gopher server Docker image
An Alpine Linux based Docker image for the Gophernicus Gopher server (https://github.com/gophernicus/gophernicus).
Do you just want to run a simple Gopher service? Do you not want to mess the hassle of setting up old-school inetd/xinetd/systemd sockets/etc? Are you already running all your other services as containers? Well so did I!
This image runs Gophernicus via xinetd on an Alpine Linux base for a Docker image that weighs in at just a smidge under 7MB. Set your hostname, point your favorite volume at `/var/gopher`, bind port 70 and go!
ex:
```
docker build -t gophernicus .
docker run --name gophernicus \
--hostname <your gopher hostname> \
-p 70:70 \
-v <your gopher root>:/var/gopher \
gophernicus
```
## TODO
- Logging to stdout
- Configuration via environment variables

21
xinetd.conf Normal file
View file

@ -0,0 +1,21 @@
defaults
{
instances = 25
log_type = FILE /var/log/servicelog
log_on_success = HOST PID
log_on_failure = HOST
}
# default: on
# description: Gophernicus - Modern full-featured gopher server
service gopher
{
socket_type = stream
protocol = tcp
port = 70
wait = no
user = nobody
server = /usr/sbin/gophernicus
server_args = -r /var/gopher
disable = no
}