FROM elixir:1.13.4-slim AS builderish WORKDIR /app COPY mix.exs . COPY mix.lock . COPY .formatter.exs . RUN mix local.hex --force RUN mix local.rebar --force RUN mix deps.get COPY lib/ ./lib/ COPY config/ ./config/ ENV MIX_ENV=prod RUN mix release FROM elixir:1.13.4-slim RUN apt-get update && apt-get install -y supervisor adduser sudo curl gpg RUN useradd -m rabil && echo "rabil:rabil" | chpasswd && adduser rabil sudo RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers RUN curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg RUN sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg RUN echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list RUN sudo apt-get update RUN sudo apt-get install redis-stack-server WORKDIR /app COPY --from=builderish /app/_build/prod/rel/prod/ ./_build/prod/rel/prod/ USER rabil ARG SRH_MODE ENV SRH_MODE=${SRH_MODE} ARG SRH_TOKEN ENV SRH_TOKEN=${SRH_TOKEN} ARG SRH_CONNECTION_STRING ENV SRH_CONNECTION_STRING=${SRH_CONNECTION_STRING} ENV SRH_PORT=7860 EXPOSE 7860 ENV MIX_ENV=prod COPY docker/supervisor.conf /etc/supervisor/conf.d/supervisor.conf COPY docker/redis.conf /etc/redis/redis.conf RUN sudo mkdir -p /etc/lib/redis RUN sudo chmod -R 777 /etc/redis/ RUN sudo chmod -R 777 /app RUN sudo chmod -R 777 /etc/lib/redis CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisor.conf"]