# inspired from https://framagit.org/Windyo/mobilizon/-/blob/a1e0b9730e9c63de6058c3f5d803b2743efafed4/docker/app/Dockerfile # **** Temporary docker image **** # elixir version MUST match FROM elixir:1.10.4 as builder ARG MOBILIZON_GIT_URL ARG MOBILIZON_GIT_TAG ARG NODE_V ENV MIX_ENV prod ENV INSTANCE_CONFIG prod RUN apt-get update -y \ && apt-get install -y apt-utils \ && curl -sL https://deb.nodesource.com/setup_"$NODE_V".x | bash - \ && apt-get install -y nodejs build-essential inotify-tools postgresql-client git curl gnupg xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 python3-pip cmake \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && npm install -g yarn wait-on RUN useradd -ms /bin/bash -p ! mobilizon USER mobilizon WORKDIR /home/mobilizon COPY ./prod.secret.exs /home/mobilizon/build/config/ RUN git clone -b "$MOBILIZON_GIT_TAG" "$MOBILIZON_GIT_URL" ./build WORKDIR /home/mobilizon/build RUN mix local.hex --force \ && mix local.rebar --force RUN mix deps.get RUN mix deps.compile RUN mix compile WORKDIR /home/mobilizon/build/js RUN yarn install \ && yarn run build WORKDIR /home/mobilizon/build RUN rm -rf ./.dockerignore ./.gitignore ./.gitlab-ci.yml ./CHANGELOG.md ./CONTRIBUTING.md ./docker ./docker-compose.test.yml ./docker-compose.yml ./Dockerfile ./docs ./js ./Makefile ./README.md ./SECURITY.md ./setup_db.psql ./support \ && curl https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb --output GeoLite2-City.mmdb -s \ && mv GeoLite2-City.mmdb /home/mobilizon/build/priv/data/GeoLite2-City.mmdb # Final docker image FROM elixir:1.10.4-alpine ENV INIT=FALSE \ ADMIN_EMAIL=test@test.com \ ADMIN_PASSWORD=passwd \ MIX_ENV=prod \ INSTANCE_CONFIG=prod RUN addgroup -S mobilizongr && adduser -s /bin/bash -S mobilizon -G mobilizongr RUN apk update && apk add --update git && rm-rf /tmp/* /var/tmp/* COPY --from=builder /home/mobilizon/build/ /home/mobilizon/live/ COPY --from=builder /home/mobilizon/.mix/ /home/mobilizon/.mix/ COPY ./entrypoint.sh /home/mobilizon/entrypoint.sh RUN chmod +x /home/mobilizon/entrypoint.sh WORKDIR /home/mobilizon/live USER mobilizon ENTRYPOINT [ "/home/mobilizon/entrypoint.sh" ]