M soju/Dockerfile => soju/Dockerfile +2 -5
@@ 5,14 5,11 @@ RUN apk update &&\
git clone https://git.sr.ht/~emersion/soju && \
cd soju && \
make && \
- openssl req -new -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
- -out cert.pem -keyout key.pem \
- -subj "/CN=soju" && \
- echo 'tls /soju/cert.pem /soju/key.pem' > soju.conf && \
echo 'sql sqlite3 /sojudb/soju.db' >> soju.conf && \
echo 'listen 0.0.0.0:6697' >> soju.conf && \
mkdir /sojudb
+COPY ./entrypoint.sh /entrypoint.sh
EXPOSE 6697
-CMD ["/soju/soju", "-config", "/soju/soju.conf"]
+ENTRYPOINT /entrypoint.sh
M soju/README.md => soju/README.md +2 -1
@@ 4,7 4,7 @@ https://sr.ht/~emersion/soju
## Build the image
- docker build -t whatever/you:want .
+ docker build -t mapperr/soju:latest .
## Using the image
@@ 14,6 14,7 @@ Suppose you tagged the image as `mapperr/soju:latest`:
--name soju \
-p 6697:6697 \
-v $PWD/sojudb:/sojudb \
+ -v $PWD/cert:/cert \
mapperr/soju:latest
then create a user with:
A soju/build.sh => soju/build.sh +4 -0
@@ 0,0 1,4 @@
+#! /bin/sh
+
+docker build -t mapperr/soju:latest .
+
A soju/entrypoint.sh => soju/entrypoint.sh +20 -0
@@ 0,0 1,20 @@
+#! /bin/sh
+
+certfile="/cert/cert.pem"
+keyfile="/cert/key.pem"
+
+if [ -f "$certfile" ] && [ -f "$keyfile" ]; then
+ echo 'cert already present'
+
+else
+ openssl req -new \
+ -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \
+ -out $certfile \
+ -keyout $keyfile \
+ -subj "/CN=soju"
+fi
+
+echo "tls $certfile $keyfile" >> /soju/soju.conf
+
+/soju/soju -config /soju/soju.conf
+
A soju/run.sh => soju/run.sh +9 -0
@@ 0,0 1,9 @@
+#! /bin/sh
+
+docker run -d \
+ --name soju \
+ --restart unless-stopped \
+ -p 6697:6697 \
+ -v $PWD/sojudb:/sojudb \
+ -v $PWD/cert:/cert \
+ mapperr/soju:latest