diff --git a/Dockerfile b/Dockerfile index d9e5cc2..a39d1f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,32 @@ -FROM node:18 AS client-builder +FROM node:18-alpine AS client-builder WORKDIR /app/client COPY client/package.json ./ -RUN npm install +RUN npm install --only=production && npm cache clean --force COPY client/ . RUN npm run build -FROM node:18 - -RUN apt-get update && \ - apt-get install -y \ - libcairo2-dev libjpeg62-turbo-dev libpng-dev libossp-uuid-dev \ - libavcodec-dev libavutil-dev libswscale-dev \ - libpango1.0-dev libpulse-dev libssh2-1-dev libtelnet-dev \ - libvncserver-dev libwebp-dev libwebsockets-dev libssl-dev \ - libvorbis-dev libwebp-dev \ - freerdp2-dev libfreerdp-client2-2 libfreerdp2-2 \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN apt-get update && \ - apt-get install -y build-essential autoconf libtool && \ - git clone https://github.com/apache/guacamole-server.git && \ - cd guacamole-server && \ - autoreconf -fi && \ - ./configure --with-init-dir=/etc/init.d --enable-rdp && \ - make && \ - make install && \ - ldconfig && \ - cd .. && \ - rm -rf guacamole-server +FROM node:18-alpine + +RUN apk add --no-cache \ + cairo-dev jpeg-dev libpng-dev ossp-uuid-dev ffmpeg-dev \ + pango-dev libvncserver-dev libwebp-dev openssl-dev freerdp-dev freerdp \ + autoconf automake libtool libpulse libogg libc-dev \ + && apk add --no-cache --virtual .build-deps build-base git + +RUN git clone --depth=1 https://github.com/apache/guacamole-server.git \ + && cd guacamole-server \ + && autoreconf -fi \ + && ./configure --with-init-dir=/etc/init.d --enable-rdp \ + && make \ + && make install \ + && cd .. \ + && rm -rf guacamole-server + +RUN apk del .build-deps \ + && rm -rf /var/cache/apk/* ENV NODE_ENV=production @@ -39,7 +35,7 @@ WORKDIR /app COPY --from=client-builder /app/client/dist ./dist COPY package.json ./ -RUN npm install +RUN npm install --omit=dev && npm cache clean --force COPY server/ server/ COPY docker-start.sh . @@ -48,4 +44,4 @@ RUN chmod +x docker-start.sh EXPOSE 6989 -CMD ["./docker-start.sh"] \ No newline at end of file +CMD ["/bin/sh", "docker-start.sh"] \ No newline at end of file diff --git a/docker-start.sh b/docker-start.sh index 13be799..48f86de 100644 --- a/docker-start.sh +++ b/docker-start.sh @@ -1,4 +1,4 @@ #!/bin/bash -guacd -b 0.0.0.0 -l 4822 -f & +guacd -b 0.0.0.0 -l 4822 -f > /dev/null 2>&1 & exec node server/index.js