diff options
author | dan <[email protected]> | 2024-04-30 18:59:18 -0400 |
---|---|---|
committer | dan <[email protected]> | 2024-04-30 18:59:18 -0400 |
commit | 9aaec11618fda177f44bcd2b2c38bbbf6680f4b7 (patch) | |
tree | 52881930c15e58cc9891af70a450565a40bd170a | |
parent | 49cdb4598515a97b1280f500bea250238a887a68 (diff) | |
download | 54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.tar.gz 54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.tar.bz2 54-9aaec11618fda177f44bcd2b2c38bbbf6680f4b7.zip |
feat: deploy using docker
-rw-r--r-- | Dockerfile | 29 | ||||
-rwxr-xr-x | createUserInDocker.sh | 2 | ||||
-rw-r--r-- | docker-compose.yml | 11 | ||||
-rw-r--r-- | itter.service | 4 | ||||
-rw-r--r-- | makefile | 14 | ||||
-rwxr-xr-x | run.sh | 2 |
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 @@ -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' @@ -0,0 +1,2 @@ +#!/bin/sh +docker-compose build && docker-compose up |