Add Dockerfile and docker-compose example (#11)

This commit is contained in:
Manuel 2021-05-08 19:22:12 +02:00 committed by GitHub
parent d83283466c
commit c186ecf521
Signed by untrusted user: GitHub
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 73 additions and 0 deletions

37
Dockerfile Normal file
View File

@ -0,0 +1,37 @@
FROM alpine:latest as build
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
WORKDIR /tmp/haskell
RUN apk update && \
apk upgrade --available && \
apk add \
build-base make cmake gcc gmp curl xz perl cpio coreutils \
binutils-gold tar gzip unzip \
libc-dev musl-dev ncurses-dev gmp-dev zlib-dev expat-dev libffi-dev \
gd-dev postgresql-dev linux-headers
RUN curl https://gitlab.haskell.org/haskell/ghcup-hs/raw/master/bootstrap-haskell -sSf | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh && \
/root/.ghcup/bin/ghcup set
ENV PATH "$PATH:/root/.cabal/bin:/root/.ghcup/bin"
WORKDIR /tmp/myriad
COPY . .
RUN cabal new-install
RUN mkdir -p /opt/myriad && \
cp -L /root/.cabal/bin/myriad /opt/myriad && \
mv languages /opt/myriad && \
mv config.example.yaml /opt/myriad/config.yaml
FROM alpine:latest
RUN apk add --no-cache docker-cli gmp
WORKDIR /opt/myriad
COPY --from=build /opt/myriad .
EXPOSE 8081
CMD ["./myriad"]

19
Dockerfile.release Normal file
View File

@ -0,0 +1,19 @@
FROM frolvlad/alpine-glibc:latest as build
ARG MYRIAD_VERSION=0.5.0.3
ARG GHC_VERSION=8.8.3
RUN apk add --no-cache curl tar gzip
WORKDIR /tmp/myriad
RUN curl -OL https://github.com/1Computer1/myriad/releases/download/${MYRIAD_VERSION}/myriad-${MYRIAD_VERSION}-Linux-${GHC_VERSION}.tar.gz && \
tar -xzf myriad-${MYRIAD_VERSION}-Linux-${GHC_VERSION}.tar.gz && \
rm -f myriad-${MYRIAD_VERSION}-Linux-${GHC_VERSION}.tar.gz
FROM frolvlad/alpine-glibc:latest
RUN apk add --no-cache docker-cli gmp
WORKDIR /opt/myriad
COPY --from=build /tmp/myriad .
EXPOSE 8081
CMD ["./myriad"]

View File

@ -0,0 +1,17 @@
version: '3.8'
services:
myriad:
build:
context: .
dockerfile: Dockerfile.release
image: myriad:latest
container_name: myriad
network_mode: bridge
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./config.yaml:/opt/myriad/config.yaml:ro
ports:
- 127.0.0.1:8081:8081/tcp
- ::1:8081:8081/tcp
restart: unless-stopped