mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-03-30 18:35:59 +00:00
* docker: add selfhosted version * switch to ghcup * readme * master -> stable * delete git checkout * rename docker files Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
54 lines
1.2 KiB
Docker
54 lines
1.2 KiB
Docker
FROM ubuntu:focal AS final
|
|
FROM ubuntu:focal AS build
|
|
|
|
### Build stage
|
|
|
|
# Install curl and git and smp-related dependencies
|
|
RUN apt-get update && apt-get install -y curl git build-essential libgmp3-dev zlib1g-dev
|
|
|
|
# Install ghcup
|
|
RUN curl https://downloads.haskell.org/~ghcup/x86_64-linux-ghcup -o /usr/bin/ghcup && \
|
|
chmod +x /usr/bin/ghcup
|
|
|
|
# Install ghc
|
|
RUN ghcup install ghc
|
|
# Install cabal
|
|
RUN ghcup install cabal
|
|
# Set both as default
|
|
RUN ghcup set ghc && \
|
|
ghcup set cabal
|
|
|
|
# Clone simplexmq repository
|
|
RUN git clone https://github.com/simplex-chat/simplexmq
|
|
# and cd to it
|
|
WORKDIR ./simplexmq
|
|
|
|
# Adjust PATH
|
|
ENV PATH="/root/.cabal/bin:/root/.ghcup/bin:$PATH"
|
|
|
|
# Compile smp-server
|
|
RUN cabal update
|
|
RUN cabal install
|
|
|
|
### Final stage
|
|
|
|
FROM final
|
|
|
|
# Install OpenSSL dependency
|
|
RUN apt-get update && apt-get install -y openssl
|
|
|
|
# Copy compiled smp-server from build stage
|
|
COPY --from=build /root/.cabal/bin/smp-server /usr/bin/smp-server
|
|
|
|
# Copy our helper script
|
|
COPY ./entrypoint /usr/bin/entrypoint
|
|
|
|
# Open smp-server listening port
|
|
EXPOSE 5223
|
|
|
|
# SimpleX requires using SIGINT to correctly preserve undelivered messages and restore them on restart
|
|
STOPSIGNAL SIGINT
|
|
|
|
# Finally, execute helper script
|
|
ENTRYPOINT [ "/usr/bin/entrypoint" ]
|