summaryrefslogtreecommitdiffstats
path: root/Containerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Containerfile')
-rw-r--r--Containerfile71
1 files changed, 71 insertions, 0 deletions
diff --git a/Containerfile b/Containerfile
new file mode 100644
index 0000000..c771b40
--- /dev/null
+++ b/Containerfile
@@ -0,0 +1,71 @@
+
+# create an oci container image with
+# cd /home/expo && podman build -t expo:dev --rm -f troggle/Containerfile
+
+#
+FROM docker.io/library/debian:bookworm
+
+WORKDIR /home/expo2
+
+RUN apt update && \
+ apt install -y postgresql apache2 survex rsync git cgit proftpd \
+ python3 python3-django python3-pil python3-piexif \
+ python3-bs4 python3-unidecode python3-cryptography \
+ libjs-codemirror
+
+# do we need libjs-leaflet? libjs-sizzle? libjs-mgrs?
+
+# Install non-packaged dependencies
+# apt install CaveView and bins and libjs-proj4 from local repo/backports?
+# Copy only the dependency files first
+#wget troggle/pyproject.toml troggle/uv.lock
+#RUN wget troggle/pyproject.toml && uv sync --frozen
+
+RUN useradd -m expo -G sudo -s /bin/bash
+
+# Optional:install and configure BoE
+
+#add apache config, enable modules
+#configure postgres
+
+
+#Start up services for apache, proftpd, postgresql, cron?
+
+#end of system stage
+
+
+# User files - separate layer?
+RUN chown expo:expo .
+USER expo
+
+RUN mkdir -p repositories/git && cd repositories/git && \
+ git clone http://expo.survex.com/repositories/troggle/.git && \
+ git clone http://expo.survex.com/repositories/expoweb/.git && \
+ git clone http://expo.survex.com/repositories/loser/.git && \
+ git clone http://expo.survex.com/repositories/drawings/.git
+RUN ln -s repositories/git/troggle troggle && \
+ ln -s repositories/git/troggle expoweb && \
+ ln -s repositories/git/troggle loser && \
+ ln -s repositories/git/troggle drawings
+
+RUN git config --global user.email "expo@potato.hut"
+RUN git config --global user.name "expo"
+RUN git config --global pull.rebase true
+
+#rsync -az expo.survex.com:expofiles expofiles
+#demo short version
+#rsync -az expo.survex.com:expofiles/surveyscans/2018 expofiles/surveyscans/2018
+#rsync -az expo.survex.com:expofiles/photos/2018/PhilipSargent/ expofiles/photos/2018/PhilipSargent
+
+#/bin/sh is missing at this point - why?
+RUN cd troggle && run databaseReset.py reset INIT
+
+EXPOSE 8080
+#Run postres process
+CMD ["uv", "run", "python", "troggle/manage.py", "runserver", "0.0.0.0:8080"]
+CMD ["bash"]
+
+# move this file to the directory above troggle, loser etc before running the podman image build command.
+
+# used image with:
+# podman run -it --network=host --rm expo:dev