74 lines
1.4 KiB
Docker
74 lines
1.4 KiB
Docker
FROM elixir:1.14-alpine as build
|
|
|
|
ENV MIX_ENV=prod
|
|
ENV ERL_EPMD_ADDRESS=127.0.0.1
|
|
|
|
ARG BUILD_DIR=/opt/akkoma/
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
|
|
RUN addgroup -g ${GID} akkoma \
|
|
&& adduser -u ${UID} -G akkoma -s /bin/sh -D akkoma \
|
|
&& apk add --no-cache \
|
|
git \
|
|
gcc \
|
|
g++ \
|
|
musl-dev \
|
|
make \
|
|
cmake \
|
|
file-dev
|
|
|
|
WORKDIR ${BUILD_DIR}
|
|
|
|
RUN mix local.hex --force \
|
|
&& mix local.rebar --force
|
|
|
|
COPY ./mix.exs ./mix.lock ./
|
|
|
|
RUN mix deps.get --only ${MIX_ENV}
|
|
|
|
COPY . .
|
|
|
|
RUN mkdir -p "${BUILD_DIR}_build/" \
|
|
&& mix release --path "${BUILD_DIR}_build"
|
|
|
|
|
|
FROM elixir:1.14-alpine as web
|
|
|
|
ENV MIX_ENV=prod
|
|
ENV ERL_EPMD_ADDRESS=127.0.0.1
|
|
|
|
ARG DATA_DIR=/var/lib/akkoma/
|
|
ARG INSTALL_DIR=/opt/akkoma/
|
|
ARG CONFIG_DIR=/etc/akkoma/
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
|
|
RUN addgroup -g ${GID} akkoma \
|
|
&& adduser -u ${UID} -G akkoma -s /bin/sh -D akkoma \
|
|
&& apk add --no-cache \
|
|
exiftool \
|
|
ffmpeg \
|
|
imagemagick \
|
|
libmagic \
|
|
ncurses \
|
|
postgresql-client
|
|
|
|
RUN mkdir -p "${DATA_DIR}uploads/" \
|
|
&& mkdir -p "${DATA_DIR}static/" \
|
|
&& mkdir -p "${INSTALL_DIR}" \
|
|
&& mkdir -p "${CONFIG_DIR}"
|
|
|
|
COPY --from=build ${INSTALL_DIR}_build/ ${INSTALL_DIR}
|
|
COPY ./docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
|
|
ENV PATH="/opt/akkoma/bin:${PATH}"
|
|
ENV AKKOMA_CONFIG_PATH="${CONFIG_DIR}config.exs"
|
|
|
|
WORKDIR ${INSTALL_DIR}
|
|
|
|
EXPOSE 4000
|
|
|
|
ENTRYPOINT [ "docker-entrypoint.sh" ]
|
|
|
|
CMD [ "pleroma", "start" ]
|