39 lines
1.5 KiB
Docker
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"]
|