Skip to content
Snippets Groups Projects
Select Git revision
  • e6e42ba0ee99ffa6cf5c2f881e83a5b0893e226e
  • master default protected
2 results

Dockerfile

Blame
  • Armin's avatar
    Armin Co authored
    One Dockerfile that contains:
    base mumble-web image for building
    nginx webserver with builded mumble-web page
    image with websockify
    9d62f10d
    History
    Dockerfile 1.25 KiB
    # multi stage dockerfile
    # it defines three different images
    # 1. mumble-web
    # 2. mumble-web with nginx
    # 3. websockfiy as web socket
    
    
    # mumble-web base image
    FROM alpine:edge AS mumble-web
    LABEL maintainer="Armin Co <armin.co@hs-bochum.de"
    # copy mumble-web repository into docker image
    COPY ./mumble-web /home/node
    # install deps for building mumble web
    RUN apk add --no-cache \
            git \
            nodejs \
            npm \
            && \
        adduser -D -g 1001 -u 1001 -h /home/node node && \
        mkdir -p /home/node && \
        mkdir -p /home/node/.npm-global && \
        mkdir -p /home/node/app  && \
        chown -R node: /home/node 
    USER node
    ENV PATH=/home/node/.npm-global/bin:$PATH
    ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
    # build mumble-web
    RUN cd /home/node   && \
        npm install     && \
        npm run build   && \
        npm audit fix   && \
        npm audit
    
    
    # add nginx as webserver to mumble web
    FROM nginx:alpine AS mumble-web-nginx
    USER root
    COPY --from=mumble-web /home/node/dist /home/node/dist
    RUN apk add --no-cache nginx && \
        adduser -D -g 'www' www && \
        mkdir /data
    EXPOSE 443
    
    
    # websockify
    FROM alpine:edge AS websockify
    RUN echo http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \
        apk add --no-cache websockify 
    EXPOSE 64737