Files
vnctalk-avatar/Dockerfile
T

39 lines
1.5 KiB
Docker

FROM alpine:3.23.4 AS builder
RUN apk update && apk upgrade && \
apk add --no-cache make gcc nodejs npm python3 g++ gcc libc-dev expat expat-dev libxml2-dev libxmlb-dev yarn gcompat \
libpq postgresql-dev nodejs-dev graphicsmagick graphicsmagick-dev nginx nginx-mod-http-headers-more && \
rm -rf /var/cache/apk/*
RUN mkdir -p /usr/share/vnc-avatar
ADD app /usr/share/vnc-avatar/app
COPY package.json /usr/share/vnc-avatar/package.json
RUN yarn global add node-gyp@9.4.0
RUN cd /usr/share/vnc-avatar && yarn install
COPY config/vnc-avatarservice.js /usr/share/vnc-avatar/config/vnc-avatarservice.js
COPY 404.html /var/www/localhost/htdocs/404.html
# Folder to store the Avatars
RUN mkdir /var/opt/out
FROM alpine:3.23.4
RUN apk update && apk upgrade && apk add --no-cache nodejs yarn nginx nginx-mod-http-headers-more && rm -rf /var/cache/apk/*
COPY --from=builder /usr/share/vnc-avatar /usr/share/vnc-avatar
COPY --from=builder /var/opt/out /var/opt/out
RUN addgroup -S nginxuser && adduser -S nginxuser -G nginxuser
# Set up necessary directories with correct permissions for the non-root user
RUN mkdir -p /var/lib/nginx/tmp /var/log/nginx /var/www/html /etc/nginx/sites-enabled && \
chown -R nginxuser:nginxuser /var/lib/nginx /var/log/nginx /var/www/html /etc/nginx/sites-enabled && \
chmod -R 755 /var/lib/nginx /var/log/nginx /var/www/html && \
chown nginxuser:nginxuser /var/opt/out
USER nginxuser
ENTRYPOINT ["node", "/usr/share/vnc-avatar/app/app.js"]