all repos — litestore @ 7bc62d29157f2d7e4cd63f3f25aaa862028eb382

A minimalist nosql document store.

Dockerfile

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
# Adapted from https://github.com/h3rald/litestore/issues/58
FROM alpine:latest

ARG USER=litestore
ENV HOME /home/$USER

RUN apk add --no-cache gcc musl-dev git sudo

# add new user
RUN adduser -D $USER && \
		echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER && \
		chmod 0440 /etc/sudoers.d/$USER

# install nim and nimble (https://github.com/Docker-Hub-frolvlad/docker-alpine-nim/blob/master/Dockerfile)
RUN export NIM_VERSION=1.4.4 && \
    export NIMBLE_VERSION=0.12.0 && \
    \
    apk add --no-cache libcrypto1.1 libssl1.1 && \
    apk add --no-cache --virtual=.build-dependencies wget ca-certificates git && \
    mkdir -p "/opt" && \
    \
    cd "/opt" && \
    wget "https://github.com/nim-lang/Nim/archive/v$NIM_VERSION.tar.gz" -O - | tar xz && \
    mv "./Nim-$NIM_VERSION" "./Nim" && \
    cd "./Nim" && \
    wget "https://github.com/nim-lang/csources/archive/master.tar.gz" -O - | tar xz && \
    mv "./csources-master" "./csources" && \
    cd "./csources" && \
    sh build.sh && \
    cd .. && \
    ./bin/nim c koch && \
    ./koch boot -d:release && \
    chmod +x "/opt/Nim/bin/nim" && \
    ln -s "/opt/Nim/bin/nim" "/usr/local/bin/nim" && \
    rm -r "./csources" "./tests" && \
    \
    cd "/opt" && \
    wget "https://github.com/nim-lang/nimble/archive/v$NIMBLE_VERSION.tar.gz" -O - | tar xz && \
    cd "./nimble-$NIMBLE_VERSION" && \
    nim compile --run "src/nimble" build --accept && \
    rm -rf /tmp/* && \
    chmod +x nimble && \
    mv nimble "/usr/local/bin/" && \
    rm -rf "/opt/nimble-$NIMBLE_VERSION" && \
    \
    apk del .build-dependencies 

# install litestore and dependencies
RUN nimble install --verbose -y nimgen && \
    ln -s $HOME/.nimble/bin/nimgen /usr/bin/nimgen && \
   nimble install --verbose -y c2nim && \
   ln -s $HOME/.nimble/bin/c2nim /usr/bin/c2nim && \
  nimble install --verbose -y litestore && \
  ln -s $HOME/.nimble/bin/litestore /usr/bin/litestore
USER $USER
WORKDIR $HOME
ENTRYPOINT ["litestore"]