a mini social media app for small communities
1FROM debian:trixie-slim
2
3# Create beep group and user
4RUN <<EOF
5set -eux
6groupadd -r beep
7useradd -r -g beep beep -d /beep -s /bin/sh
8install -vd -o beep -g beep -m 1777 /beep
9EOF
10
11# Install base packages. These might already be installed by the image.
12RUN <<EOF
13set -eux
14apt update
15apt install -y --no-install-recommends \
16 ca-certificates build-essential git libpq-dev
17EOF
18
19# Install V
20RUN <<EOF
21set -eux
22git clone --depth=1 https://github.com/vlang/v /opt/v
23cd /opt/v
24make
25ln -s /opt/v/v /usr/local/bin/v
26EOF
27
28USER beep
29WORKDIR /beep
30COPY . .
31
32# Install beep
33RUN <<EOF
34set -eux
35# git clone --depth=1 https://tangled.org/emmeline.girlkisser.top/beep .
36mkdir -p ~/.vmodules/emmathemartian/maple
37git clone --depth=1 https://github.com/emmathemartian/maple ~/.vmodules/emmathemartian/maple
38v -cflags "-O3 -flto" . # compiling with -prod causes ORM errors.
39EOF
40
41STOPSIGNAL SIGINT
42EXPOSE 8008
43CMD ["./beep"]