|
|
|
|
|
ARG PYTHON_VERSION=3.12.1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM node:20-alpine3.16 AS node-builder |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY . . |
|
|
|
|
|
|
|
|
RUN apk add --no-cache \ |
|
|
font-noto font-noto-cjk font-noto-extra \ |
|
|
gcompat libstdc++ libuuid \ |
|
|
vips-dev build-base jpeg-dev pango-dev cairo-dev \ |
|
|
imagemagick libssl1.1 && \ |
|
|
ln -s /lib/libresolv.so.2 /usr/lib/libresolv.so.2 |
|
|
|
|
|
|
|
|
RUN npm install && \ |
|
|
npm install -g ts-node \ |
|
|
npx playwright install-deps \ |
|
|
npx playwright install |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM python:${PYTHON_VERSION}-slim |
|
|
|
|
|
|
|
|
RUN apt-get update && \ |
|
|
apt-get install -y --no-install-recommends \ |
|
|
fontconfig fonts-dejavu fonts-dejavu-core fonts-dejavu-extra \ |
|
|
fonts-liberation fonts-noto \ |
|
|
git curl gnupg && \ |
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ |
|
|
apt-get install -y nodejs && \ |
|
|
rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
ENV npm_config_cache=/tmp/.npm |
|
|
|
|
|
|
|
|
RUN mkdir -p /tmp/.npm && chmod -R 777 /tmp/.npm |
|
|
RUN mkdir -p /tmp/cache_dir && chmod -R 777 /tmp/cache_dir |
|
|
|
|
|
|
|
|
ENV PORT=7860 |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY . . |
|
|
|
|
|
|
|
|
RUN --mount=type=secret,id=GITHUB_REPO,required=true \ |
|
|
--mount=type=secret,id=GITHUB_USERNAME,required=true \ |
|
|
--mount=type=secret,id=GITHUB_TOKEN,required=true \ |
|
|
if [ -n "$(cat /run/secrets/GITHUB_USERNAME)" ] && [ -n "$(cat /run/secrets/GITHUB_TOKEN)" ] && [ -n "$(cat /run/secrets/GITHUB_REPO)" ]; then \ |
|
|
echo "Cloning private repository into 'social_session'"; \ |
|
|
git clone https://$(cat /run/secrets/GITHUB_USERNAME):$(cat /run/secrets/GITHUB_TOKEN)@github.com/$(cat /run/secrets/GITHUB_USERNAME)/$(cat /run/secrets/GITHUB_REPO).git social_session; \ |
|
|
else \ |
|
|
echo "Skipping git clone: GITHUB_USERNAME, TOKEN, or GITHUB_REPO not set"; \ |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
RUN pip install -r requirements.txt |
|
|
|
|
|
|
|
|
CMD ["python", "-m", "hypercorn", "main:app", "-b", "0.0.0.0:7860", "-w", "8", "--keep-alive", "600"] |
|
|
|