|
| 1 | +ARG IMAGE="tarantool/tarantool" |
| 2 | +ARG TARANTOOL_VERSION="2.11.8-ubuntu20.04" |
| 3 | +FROM $IMAGE:$TARANTOOL_VERSION AS cartridge-base |
| 4 | + |
| 5 | +ARG TARANTOOL_SERVER_USER="root" |
| 6 | +ARG TARANTOOL_SERVER_GROUP="root" |
| 7 | +USER $TARANTOOL_SERVER_USER:$TARANTOOL_SERVER_GROUP |
| 8 | +RUN groupadd $TARANTOOL_SERVER_GROUP && useradd -m -s /bin/bash $TARANTOOL_SERVER_USER || true |
| 9 | + |
| 10 | +# install dependencies |
| 11 | +RUN ulimit -n 1024 && \ |
| 12 | + apt-get -y update && \ |
| 13 | + apt-get -y install build-essential cmake make gcc git unzip cartridge-cli && \ |
| 14 | + apt-get -y clean |
| 15 | +RUN cartridge version |
| 16 | + |
| 17 | +# build and run |
| 18 | +FROM cartridge-base AS cartridge-app |
| 19 | +ARG CARTRIDGE_SRC_DIR="cartridge" |
| 20 | +ARG TARANTOOL_WORKDIR="/app" |
| 21 | +ARG TARANTOOL_RUNDIR="/tmp/run" |
| 22 | +ARG TARANTOOL_DATADIR="/tmp/data" |
| 23 | +ARG TARANTOOL_LOGDIR="/tmp/log" |
| 24 | +ARG TARANTOOL_INSTANCES_FILE="./instances.yml" |
| 25 | +ARG TARANTOOL_CLUSTER_COOKIE |
| 26 | +ARG START_DELAY="5s" |
| 27 | +ENV START_DELAY=$START_DELAY |
| 28 | +ENV TARANTOOL_WORKDIR=$TARANTOOL_WORKDIR |
| 29 | +ENV TARANTOOL_RUNDIR=$TARANTOOL_RUNDIR |
| 30 | +ENV TARANTOOL_DATADIR=$TARANTOOL_DATADIR |
| 31 | +ENV TARANTOOL_LOGDIR=$TARANTOOL_LOGDIR |
| 32 | +ENV TARANTOOL_INSTANCES_FILE=$TARANTOOL_INSTANCES_FILE |
| 33 | +ENV TARANTOOL_CLUSTER_COOKIE=$TARANTOOL_CLUSTER_COOKIE |
| 34 | +ENV CMAKE_DUMMY_WEBUI="YES" |
| 35 | +COPY $CARTRIDGE_SRC_DIR $TARANTOOL_WORKDIR |
| 36 | +WORKDIR $TARANTOOL_WORKDIR |
| 37 | + |
| 38 | +RUN rm -rf .rocks && cartridge build --verbose |
| 39 | + |
| 40 | +RUN echo 'if [ -z "$TARANTOOL_CLUSTER_COOKIE" ]; then unset TARANTOOL_CLUSTER_COOKIE ; fi ; \ |
| 41 | + sleep $START_DELAY && cartridge start --run-dir=$TARANTOOL_RUNDIR --data-dir=$TARANTOOL_DATADIR \ |
| 42 | + --log-dir=$TARANTOOL_LOGDIR --cfg=$TARANTOOL_INSTANCES_FILE' > run.sh && chmod +x run.sh |
| 43 | +CMD ./run.sh |
0 commit comments