chore(Dockerfile): build and deploy via Docker, remove Nixpacks
This commit is contained in:
parent
f85f47bbd4
commit
a4714a4790
7 changed files with 73 additions and 19 deletions
56
Dockerfile
Normal file
56
Dockerfile
Normal file
|
@ -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"
|
Loading…
Add table
Add a link
Reference in a new issue