From 454ab293a49b2847a0a47687761beec6940cf659 Mon Sep 17 00:00:00 2001 From: Cory Dransfeldt Date: Mon, 28 Apr 2025 10:22:43 -0700 Subject: [PATCH] chore(Dockerfile): build and deploy via Docker, remove Nixpacks --- Dockerfile | 56 +++++++++++++++++++++++++++++++++++++++++++++++ nixpacks.toml | 15 ------------- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 59 insertions(+), 18 deletions(-) create mode 100644 Dockerfile delete mode 100644 nixpacks.toml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ddbeeb7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,56 @@ +FROM node:20-bullseye + +# install system dependencies +RUN apt-get update && apt-get install -y \ + git \ + openssh-client \ + rsync \ + curl \ + php-cli \ + php-mbstring \ + jq \ + && rm -rf /var/lib/apt/lists/* + +# set working directory +WORKDIR /workdir + +# build time args +ARG GIT_REPO +ARG GIT_BRANCH=main + +# clone source +RUN git clone --depth 1 --branch ${GIT_BRANCH} ${GIT_REPO} app + +# move into app directory +WORKDIR /workdir/app + +# build-time env vars +ARG POSTGREST_API_KEY +ARG POSTGREST_URL + +# export vars for build staps +ENV POSTGREST_API_KEY=${POSTGREST_API_KEY} +ENV POSTGREST_URL=${POSTGREST_URL} + +# clean npm cache +RUN npm cache clean --force + +# install deps +RUN npm install + +# build +RUN npm run build + +# set runtime env vars +ARG SERVER_IP +ENV SERVER_IP=${SERVER_IP} + +# deploy and manage container healthcheck +CMD bash -c "\ + mkdir -p ~/.ssh && \ + echo \"${SSH_PRIVATE_KEY}\" > ~/.ssh/id_rsa && \ + chmod 600 ~/.ssh/id_rsa && \ + ssh-keyscan -H \"${SERVER_IP}\" >> ~/.ssh/known_hosts && \ + rsync -avz --delete dist/ root@\"${SERVER_IP}\":/var/www/coryd.dev/ && \ + echo \"✅ Deployed successfully\" && \ + tail -f /dev/null" diff --git a/nixpacks.toml b/nixpacks.toml deleted file mode 100644 index 4580bb6..0000000 --- a/nixpacks.toml +++ /dev/null @@ -1,15 +0,0 @@ -[phases.setup] -aptPkgs = [ - "curl", - "wget", - "zip", - "unzip", - "php-cli", - "php-mbstring", - "openssh-client", - "rsync", - "jq" -] -cmds = [ - "curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/bin/composer && chmod +x /usr/bin/composer", -] diff --git a/package-lock.json b/package-lock.json index 724a617..10078f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "coryd.dev", - "version": "3.3.5", + "version": "3.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "3.3.5", + "version": "3.4.0", "license": "MIT", "dependencies": { "html-minifier-terser": "7.2.0", diff --git a/package.json b/package.json index 3497894..9671892 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "3.3.5", + "version": "3.4.0", "description": "The source for my personal site. Built using 11ty (and other tools).", "type": "module", "engines": {