summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordan <[email protected]>2024-04-30 18:59:18 -0400
committerdan <[email protected]>2024-04-30 18:59:18 -0400
commit9aaec11618fda177f44bcd2b2c38bbbf6680f4b7 (patch)
tree52881930c15e58cc9891af70a450565a40bd170a
parent49cdb4598515a97b1280f500bea250238a887a68 (diff)
download54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.tar.gz
54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.tar.bz2
54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.zip
feat: deploy using docker
-rw-r--r--Dockerfile29
-rwxr-xr-xcreateUserInDocker.sh2
-rw-r--r--docker-compose.yml11
-rw-r--r--itter.service4
-rw-r--r--makefile14
-rwxr-xr-xrun.sh2
6 files changed, 60 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..3161015
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+FROM debian:buster-slim AS build
+RUN apt-get update && apt-get -y --no-install-recommends install \
+ build-essential \
+ && rm -rf /var/lib/apt/lists/*
+WORKDIR /build
+ADD https://code.call-cc.org/releases/5.2.0/chicken-5.2.0.tar.gz chicken.tar.gz
+RUN mkdir chicken && tar -C chicken --strip-components 1 -xf chicken.tar.gz
+WORKDIR /build/chicken
+RUN make PLATFORM=linux
+RUN make PLATFORM=linux install
+
+FROM debian:buster-slim
+RUN apt-get update && apt-get -y --no-install-recommends install \
+ gcc libc-dev sqlite3 libsqlite3-dev \
+ && rm -rf /var/lib/apt/lists/*
+COPY --from=build /usr/local/ /usr/local/
+RUN chicken-install crypt sqlite3 multipart-form-data \
+ spiffy-request-vars html-parser spiffy intarweb sql-null srfi-69 \
+ srfi-1 srfi-4 uri-common
+COPY ./main.scm .
+COPY ./add-user.scm .
+COPY ./favicon.ico .
+COPY ./style.css .
+COPY ./createUserInDocker.sh .
+RUN mkdir -p ./build
+RUN csc -static ./main.scm -L -lsqlite3 -L -lcrypt
+RUN csc -static ./add-user.scm -L -lcrypt -L -lsqlite3
+ENV DB_FILE='./54itter.db'
+CMD ["./main"]
diff --git a/createUserInDocker.sh b/createUserInDocker.sh
new file mode 100755
index 0000000..e531406
--- /dev/null
+++ b/createUserInDocker.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+docker exec -it itter /add-user $1 $2
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..6145155
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,11 @@
+version: '3.8'
+
+services:
+ app:
+ container_name: itter
+ build:
+ context: .
+ dockerfile: Dockerfile
+ ports:
+ - "7080:7080"
+ restart: unless-stopped
diff --git a/itter.service b/itter.service
index dd7713d..82a72ac 100644
--- a/itter.service
+++ b/itter.service
@@ -6,8 +6,8 @@ StartLimitBurst=4
[Service]
User=root
-WorkingDirectory=/root
-ExecStart=/root/54itter
+WorkingDirectory=/root/54itter
+ExecStart=/root/54itter/run.sh
Restart=on-failure
RestartSec=1
SuccessExitStatus=3 4
diff --git a/makefile b/makefile
index e7ef2f9..c8fd464 100644
--- a/makefile
+++ b/makefile
@@ -30,3 +30,17 @@ clean:
rm -r build/
status:
ssh dotemgo-tasks_root 'systemctl status itter.service'
+
+deploy:
+ cp ./style.css ./build/style.css
+ cp ./favicon_io/favicon.ico ./build/favicon.ico
+ cp ./Dockerfile ./build
+ cp ./docker-compose.yml ./build
+ cp ./main.scm ./build
+ cp ./add-user.scm ./build
+ cp ./run.sh ./build/run.sh.new
+ cp ./createUserInDocker.sh ./build
+ rsync --recursive --delete ./build/ dotemgo-tasks_root:/root/54itter/
+ ssh dotemgo-tasks_root 'systemctl stop itter.service \
+ && mv /root/54itter/run.sh.new /root/54itter/run.sh \
+ && systemctl start itter.service'
diff --git a/run.sh b/run.sh
new file mode 100755
index 0000000..7dfd821
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+docker-compose build && docker-compose up