Newer
Older
eCourse / Dockerfile
@TLCD96 TLCD96 on 27 Aug 2024 1 KB Update
FROM node:20.11.1-buster

WORKDIR /

# Dependencies for live container
RUN apt-get -y update && apt -y install nano git

RUN git clone https://github.com/Ilyas-Codes/eCourse.git

# ARGS Variables
ARG PB_VERSION=0.22.19

ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip
RUN unzip /tmp/pb.zip -d /eCourse/pb

WORKDIR /eCourse/ui


RUN sed -i 's/^VITE_DEV_PB_URL=.*/VITE_DEV_PB_URL=http\/\/127.0.0.1:90\/' .env
RUN sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=http\/\/127.0.0.1:80\/' .env
RUN npm install
RUN npm run build
RUN mv dist/* /eCourse/pb/pb_public

# Creating Executer 
RUN touch /eCourse/pb/runner.sh
RUN chmod +x /eCourse/pb/runner.sh

ENV DEV_PB_URL="http:\/\/127.0.0.1:90\/"
ENV PROD_PB_URL="http:\/\/127.0.0.1:80\/"
ENV PB_SERVE_HOST=0.0.0.0
ENV PB_SERVE_PORT=80
RUN <<<END
#!/bin/sh
export /eCourse/ui/.env

rebuild_web=0;

if [[ ${VITE_DEV_PB_URL} != ${DEV_PB_URL} ]]; then
	sed -i 's/^VITE_DEV_PB_URL=.*/VITE_DEV_PB_URL=${DEV_PB_URL}' .env
	rebuild_web=1
fi;
if [[ ${VITE_DEV_PB_URL} != ${PROD_PB_URL} ]]; then
	sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=${PROD_PB_URL}' .env
	rebuild_web=1;
fi;

if [[ "${rebuild_web}" == "1" ]]; then
	cd /eCourse/ui;
	npm install
	npm run build
	rm /eCourse/pb/pb_public/*
	rm /eCourse/pb/pb_public/.*
	mv dist/* /eCourse/pb/pb_public
fi;

PB_SERVE="${PB_SERVE_HOST}:${PB_SERVE_PORT}"

/eCourse/pb/pocketbase serve --http=${PB_SERVE}

>>>END > /eCourse/pb/runner.sh

EXPOSE 80 90

CMD ["/eCourse/pb/runner.sh"]