From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng1.m.smailru.net (smtpng1.m.smailru.net [94.100.181.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id E7FFE4696C5 for ; Mon, 13 Jan 2020 14:48:42 +0300 (MSK) From: "Alexander V. Tikhonov" Date: Mon, 13 Jan 2020 14:48:37 +0300 Message-Id: <8af63adfbd454a51c4f2b279ce09d91b2c8eb79a.1578916023.git.avtikhon@tarantool.org> In-Reply-To: References: In-Reply-To: References: Subject: [Tarantool-patches] [PATCH docker v1 3/5] Move tagged versions into master List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Turenko Cc: tarantool-patches@dev.tarantool.org Merged all standalone branches with tarantool tags into master branch to be able to build the tarantool tagged versions in master and remove branches copies. --- .gitlab-ci.yml | 152 ++++++++++++++++++-- .gitlab.mk | 5 +- README.md | 49 ++++--- dockerfiles/alpine_3.5_1.10.3 | 251 +++++++++++++++++++++++++++++++++ dockerfiles/alpine_3.5_2.2.1 | 253 ++++++++++++++++++++++++++++++++++ versions/alpine_3.5_1.10.0 | 1 + versions/alpine_3.5_1.10.2 | 1 + versions/alpine_3.5_1.10.3 | 1 + versions/alpine_3.5_1.10.4 | 1 + versions/alpine_3.5_2.1.1 | 1 + versions/alpine_3.5_2.1.2 | 1 + versions/alpine_3.5_2.1.3 | 1 + versions/alpine_3.5_2.2.0 | 1 + versions/alpine_3.5_2.2.1 | 1 + versions/alpine_3.5_2.2.2 | 1 + versions/alpine_3.5_2.3 | 1 + versions/alpine_3.5_2.3.1 | 1 + 17 files changed, 685 insertions(+), 37 deletions(-) create mode 100644 dockerfiles/alpine_3.5_1.10.3 create mode 100644 dockerfiles/alpine_3.5_2.2.1 create mode 100644 versions/alpine_3.5_1.10.0 create mode 100644 versions/alpine_3.5_1.10.2 create mode 100644 versions/alpine_3.5_1.10.3 create mode 100644 versions/alpine_3.5_1.10.4 create mode 100644 versions/alpine_3.5_2.1.1 create mode 100644 versions/alpine_3.5_2.1.2 create mode 100644 versions/alpine_3.5_2.1.3 create mode 100644 versions/alpine_3.5_2.2.0 create mode 100644 versions/alpine_3.5_2.2.1 create mode 100644 versions/alpine_3.5_2.2.2 create mode 100644 versions/alpine_3.5_2.3 create mode 100644 versions/alpine_3.5_2.3.1 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d704f3e..130cfb3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,6 +21,48 @@ before_script: make -f .gitlab.mk build fi; +# ########## +# ALPINE 3.5 +# ########## + +# Tarantool branch 1.10 + +'alpine 3.5 1.10.0': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '1.10.0' + VER: '1.10.0' + DVER: '1.10.3' + PORT: 5101 + +'alpine 3.5 1.10.2': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '1.10.2' + VER: '1.10.2' + DVER: '1.10.3' + PORT: 5102 + +'alpine 3.5 1.10.3': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '1.10.3' + VER: '1.10.3' + DVER: '1.10.3' + PORT: 5103 + +'alpine 3.5 1.10.4': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '1.10.4' + VER: '1.10.4' + DVER: '1.x' + PORT: 5104 + 'alpine 3.5 1.x': <<: *build_definition variables: @@ -28,16 +70,36 @@ before_script: TAG: '1' VER: '1.x' DVER: '1.x' - PORT: 3110 + PORT: 5100 -'alpine 3.5 2.x': +# Tarantool branch 2.1 + +'alpine 3.5 2.1.1': <<: *build_definition variables: OS: 'alpine_3.5' - TAG: '2' - VER: '2.x' - DVER: '2.x' - PORT: 3120 + TAG: '2.1.1' + VER: '2.1.1' + DVER: '2.2.1' + PORT: 5211 + +'alpine 3.5 2.1.2': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.1.2' + VER: '2.1.2' + DVER: '2.2.1' + PORT: 5212 + +'alpine 3.5 2.1.3': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.1.3' + VER: '2.1.3' + DVER: '1.x' + PORT: 5213 'alpine 3.5 2.1': <<: *build_definition @@ -46,7 +108,36 @@ before_script: TAG: '2.1' VER: '2.1' DVER: '2.2' - PORT: 3121 + PORT: 5210 + +# Tarantool branch 2.2 + +'alpine 3.5 2.2.0': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.2.0' + VER: '2.2.0' + DVER: '2.2.1' + PORT: 5220 + +'alpine 3.5 2.2.1': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.2.1' + VER: '2.2.1' + DVER: '2.2.1' + PORT: 5221 + +'alpine 3.5 2.2.2': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.2.2' + VER: '2.2.2' + DVER: '2.x' + PORT: 5222 'alpine 3.5 2.2': <<: *build_definition @@ -55,7 +146,45 @@ before_script: TAG: '2.2' VER: '2.2' DVER: '2.2' - PORT: 3122 + PORT: 5220 + +# Tarantool branch 2.3 + +'alpine 3.5 2.3.1': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.3.1' + VER: '2.3.1' + DVER: '2.x' + PORT: 5231 + +'alpine 3.5 2.3': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2.3' + VER: '2.3' + DVER: '2.x' + PORT: 5230 + +# Tarantool branch master + +'alpine 3.5 2.x': + <<: *build_definition + variables: + OS: 'alpine_3.5' + TAG: '2' + VER: '2.x' + DVER: '2.x' + PORT: 5200 + TAG_LATEST: 'latest' + +# ######## +# CentOS 7 +# ######## + +# Tarantool branch 1.10 'centos 7 1.x': <<: *build_definition @@ -64,7 +193,9 @@ before_script: TAG: '1.x-centos7' VER: '1.x' DVER: '1.x' - PORT: 3210 + PORT: 7100 + +# Tarantool branch master 'centos 7 2.x': <<: *build_definition @@ -73,5 +204,4 @@ before_script: TAG: '2.x-centos7' VER: '2.x' DVER: '2.x' - PORT: 3220 - + PORT: 7200 diff --git a/.gitlab.mk b/.gitlab.mk index 59f53c9..bd97046 100644 --- a/.gitlab.mk +++ b/.gitlab.mk @@ -7,4 +7,7 @@ build: docker exec -t tarantool_${TAG} tarantool_is_up docker stop tarantool_${TAG} docker push ${IMAGE}:${TAG} - + if [ -n "${TAG_LATEST}" ] ; then \ + docker tag ${IMAGE}:${TAG} ${IMAGE}:${TAG_LATEST} ; \ + docker push ${IMAGE}:${TAG_LATEST} ; \ + fi diff --git a/README.md b/README.md index bba48ea..3c124e1 100644 --- a/README.md +++ b/README.md @@ -310,37 +310,36 @@ $ docker run -it t1.x Fixed versions: -| Branch | Dockerfile | Docker tag | -| ------ | ---------- | ---------- | -| 1.7.3 | 1.7/Dockerfile | 1.7.3 | -| 1.7.4 | 1.7/Dockerfile | 1.7.4 | -| 1.7.5 | 1.7/Dockerfile | 1.7.5 | -| 1.7.6 | 1.7/Dockerfile | 1.7.6 | -| 1.8.1 | 1.8/Dockerfile | 1.8.1 | -| 1.9.1 | 1.x/Dockerfile | 1.9.1 | -| 1.9.2 | 1.x/Dockerfile | 1.9.2 | -| 1.10.0 | 1.x/Dockerfile | 1.10.0 | -| 1.10.2 | 1.x/Dockerfile | 1.10.2 | -| 1.10.3 | 1.x/Dockerfile | 1.10.3 | -| 2.1.1 | 2.x/Dockerfile | 2.1.1 | -| 2.1.2 | 2.x/Dockerfile | 2.1.2 | -| 2.2.0 | 2.x/Dockerfile | 2.2.0 | -| 2.2.1 | 2.x/Dockerfile | 2.2.1 | +| Docker tag | Dockerfile | +| ---------- | ---------------------------- | +| 1.10.0 | dockerfile/alpine_3.5_1.10.3 | +| 1.10.2 | dockerfile/alpine_3.5_1.10.3 | +| 1.10.3 | dockerfile/alpine_3.5_1.10.3 | +| 1.10.4 | dockerfile/alpine_3.5_1.10.4 | +| 2.1.1 | dockerfile/alpine_3.5_2.2.1 | +| 2.1.2 | dockerfile/alpine_3.5_2.2.1 | +| 2.1.3 | dockerfile/alpine_3.5_1.x | +| 2.2.0 | dockerfile/alpine_3.5_2.2.1 | +| 2.2.1 | dockerfile/alpine_3.5_2.2.1 | +| 2.2.2 | dockerfile/alpine_3.5_2.x | +| 2.3.1 | dockerfile/alpine_3.5_2.x | Rolling versions: -| Branch | Dockerfile | Docker tags | -| ------ | ---------- | ----------- | -| master | dockerfile/alpine_3.5_1.x | 1 | -| master | dockerfile/alpine_3.5_2.2 | 2.1/2.2 | -| master | dockerfile/alpine_3.5_2.x | 2 | +| Docker tag | Dockerfile | +| ---------- | ------------------------- | +| 1 | dockerfile/alpine_3.5_1.x | +| 2.1 | dockerfile/alpine_3.5_2.2 | +| 2.2 | dockerfile/alpine_3.5_2.2 | +| 2.3 | dockerfile/alpine_3.5_2.x | +| 2/latest | dockerfile/alpine_3.5_2.x | Special builds: -| Branch | Dockerfile | Docker tag | -| ------ | ---------- | ---------- | -| master | dockerfile/centos_7_1.x | 1.x-centos7 | -| master | dockerfile/centos_7_2.x | 2.x-centos7 | +| Docker tag | Dockerfile | +| ----------- | ---------- | +| 1.x-centos7 | dockerfile/centos_7_1.x | +| 2.x-centos7 | dockerfile/centos_7_2.x | ## How to push changes (for maintainers) diff --git a/dockerfiles/alpine_3.5_1.10.3 b/dockerfiles/alpine_3.5_1.10.3 new file mode 100644 index 0000000..a80ba61 --- /dev/null +++ b/dockerfiles/alpine_3.5_1.10.3 @@ -0,0 +1,251 @@ +FROM alpine:3.5 +MAINTAINER mail@racktear.com + +RUN addgroup -S tarantool \ + && adduser -S -G tarantool tarantool \ + && apk add --no-cache 'su-exec>=0.2' + +# An ARG instruction goes out of scope at the end of the build +# stage where it was defined. To use an arg in multiple stages, +# each stage must include the ARG instruction +ARG TNT_VER +ENV TARANTOOL_VERSION=${TNT_VER} \ + TARANTOOL_DOWNLOAD_URL=https://github.com/tarantool/tarantool.git \ + TARANTOOL_INSTALL_LUADIR=/usr/local/share/tarantool \ + CURL_REPO=https://github.com/curl/curl.git \ + CURL_TAG=curl-7_59_0 \ + GPERFTOOLS_REPO=https://github.com/gperftools/gperftools.git \ + GPERFTOOLS_TAG=gperftools-2.5 \ + LUAROCKS_URL=https://github.com/tarantool/luarocks/archive/6e6fe62d9409fe2103c0fd091cccb3da0451faf5.tar.gz \ + LUAROCK_SHARD_REPO=https://github.com/tarantool/shard.git \ + LUAROCK_SHARD_TAG=8f8c5a7 \ + LUAROCK_AVRO_SCHEMA_VERSION=2.0.1 \ + LUAROCK_EXPERATIOND_VERSION=1.0.1 \ + LUAROCK_QUEUE_VERSION=1.0.2 \ + LUAROCK_CONNPOOL_VERSION=1.1.1 \ + LUAROCK_HTTP_VERSION=1.0.1 \ + LUAROCK_MEMCACHED_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_PG_VERSION=2.0.1 \ + LUAROCK_TARANTOOL_MYSQL_VERSION=2.0.1 \ + LUAROCK_TARANTOOL_CURL_VERSION=2.3.1 \ + LUAROCK_TARANTOOL_MQTT_VERSION=1.2.1 \ + LUAROCK_TARANTOOL_GIS_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_PROMETHEUS_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_GPERFTOOLS_VERSION=1.0.1 + +COPY files/gperftools_alpine.diff / + +RUN set -x \ + && apk add --no-cache --virtual .run-deps \ + libstdc++ \ + readline \ + libressl \ + yaml \ + lz4 \ + binutils \ + ncurses \ + libgomp \ + lua \ + tar \ + zip \ + libunwind \ + icu \ + ca-certificates \ + && apk add --no-cache --virtual .build-deps \ + perl \ + gcc \ + g++ \ + cmake \ + readline-dev \ + libressl-dev \ + yaml-dev \ + lz4-dev \ + binutils-dev \ + ncurses-dev \ + lua-dev \ + musl-dev \ + make \ + git \ + libunwind-dev \ + autoconf \ + automake \ + libtool \ + linux-headers \ + go \ + icu-dev \ + wget \ + && : "---------- curl ----------" \ + && mkdir -p /usr/src/curl \ + && git clone "$CURL_REPO" /usr/src/curl \ + && git -C /usr/src/curl checkout "$CURL_TAG" \ + && (cd /usr/src/curl \ + && ./buildconf \ + && ./configure --prefix "/usr/local" \ + && make -j \ + && make install) \ + && : "---------- gperftools ----------" \ + && mkdir -p /usr/src/gperftools \ + && git clone "$GPERFTOOLS_REPO" /usr/src/gperftools \ + && git -C /usr/src/gperftools checkout "$GPERFTOOLS_TAG" \ + && (cd /usr/src/gperftools; \ + patch -p1 < /gperftools_alpine.diff; \ + rm /gperftools_alpine.diff; \ + ./autogen.sh; \ + ./configure; \ + make; \ + cp .libs/libprofiler.so* /usr/local/lib;) \ + && (GOPATH=/usr/src/go go get github.com/google/pprof; \ + cp /usr/src/go/bin/pprof /usr/local/bin) \ + && : "---------- tarantool ----------" \ + && mkdir -p /usr/src/tarantool \ + && git clone "$TARANTOOL_DOWNLOAD_URL" /usr/src/tarantool \ + && git -C /usr/src/tarantool checkout "$TARANTOOL_VERSION" \ + && git -C /usr/src/tarantool submodule update --init --recursive \ + && (cd /usr/src/tarantool; \ + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo\ + -DENABLE_BUNDLED_LIBYAML:BOOL=OFF\ + -DENABLE_BACKTRACE:BOOL=ON\ + -DENABLE_DIST:BOOL=ON\ + .) \ + && make -C /usr/src/tarantool -j\ + && make -C /usr/src/tarantool install \ + && make -C /usr/src/tarantool clean \ + && : "---------- small ----------" \ + && (cd /usr/src/tarantool/src/lib/small; \ + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + .) \ + && make -C /usr/src/tarantool/src/lib/small \ + && make -C /usr/src/tarantool/src/lib/small install \ + && make -C /usr/src/tarantool/src/lib/small clean \ + && : "---------- msgpuck ----------" \ + && (cd /usr/src/tarantool/src/lib/msgpuck; \ + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + .) \ + && make -C /usr/src/tarantool/src/lib/msgpuck \ + && make -C /usr/src/tarantool/src/lib/msgpuck install \ + && make -C /usr/src/tarantool/src/lib/msgpuck clean \ + && : "---------- luarocks ----------" \ + && wget -O luarocks.tar.gz "$LUAROCKS_URL" \ + && mkdir -p /usr/src/luarocks \ + && tar -xzf luarocks.tar.gz -C /usr/src/luarocks --strip-components=1 \ + && (cd /usr/src/luarocks; \ + ./configure; \ + make build; \ + make install) \ + && rm -r /usr/src/luarocks \ + && rm -rf /usr/src/tarantool \ + && rm -rf /usr/src/gperftools \ + && rm -rf /usr/src/go \ + && : "---------- remove build deps ----------" \ + && apk del .build-deps + +COPY files/luarocks-config.lua /usr/local/etc/luarocks/config-5.1.lua + +RUN set -x \ + && apk add --no-cache --virtual .run-deps \ + mariadb-client-libs \ + libpq \ + cyrus-sasl \ + mosquitto-libs \ + libev \ + && apk add --no-cache --virtual .build-deps \ + git \ + cmake \ + make \ + coreutils \ + gcc \ + g++ \ + postgresql-dev \ + lua-dev \ + musl-dev \ + cyrus-sasl-dev \ + mosquitto-dev \ + libev-dev \ + && mkdir -p /rocks \ + && : "---------- proj (for gis module) ----------" \ + && wget -O proj.tar.gz http://download.osgeo.org/proj/proj-4.9.3.tar.gz \ + && mkdir -p /usr/src/proj \ + && tar -xzf proj.tar.gz -C /usr/src/proj --strip-components=1 \ + && (cd /usr/src/proj; \ + ./configure; \ + make; \ + make install) \ + && rm -r /usr/src/proj \ + && rm -rf /usr/src/proj \ + && : "---------- geos (for gis module) ----------" \ + && wget -O geos.tar.bz2 http://download.osgeo.org/geos/geos-3.6.0.tar.bz2 \ + && mkdir -p /usr/src/geos \ + && tar -xjf geos.tar.bz2 -C /usr/src/geos --strip-components=1 \ + && (cd /usr/src/geos; \ + ./configure; \ + make; \ + make install) \ + && rm -r /usr/src/geos \ + && rm -rf /usr/src/geos \ + && : "---------- luarocks ----------" \ + && luarocks install lua-term \ + && luarocks install ldoc \ + && : "avro" \ + && luarocks install avro-schema $LUAROCK_AVRO_SCHEMA_VERSION \ + && : "expirationd" \ + && luarocks install expirationd $LUAROCK_EXPERATIOND_VERSION \ + && : "queue" \ + && luarocks install queue $LUAROCK_QUEUE_VERSION \ + && : "connpool" \ + && luarocks install connpool $LUAROCK_CONNPOOL_VERSION \ + && : "shard" \ + && git clone $LUAROCK_SHARD_REPO /rocks/shard \ + && git -C /rocks/shard checkout $LUAROCK_SHARD_TAG \ + && (cd /rocks/shard && luarocks make *rockspec) \ + && : "http" \ + && luarocks install http $LUAROCK_HTTP_VERSION \ + && : "pg" \ + && luarocks install pg $LUAROCK_TARANTOOL_PG_VERSION \ + && : "mysql" \ + && luarocks install mysql $LUAROCK_TARANTOOL_MYSQL_VERSION \ + && : "memcached" \ + && luarocks install memcached $LUAROCK_MEMCACHED_VERSION \ + && : "prometheus" \ + && luarocks install prometheus $LUAROCK_TARANTOOL_PROMETHEUS_VERSION \ + && : "curl" \ + && luarocks install tarantool-curl $LUAROCK_TARANTOOL_CURL_VERSION \ + && : "mqtt" \ + && luarocks install mqtt $LUAROCK_TARANTOOL_MQTT_VERSION \ + && : "gis" \ + && luarocks install gis $LUAROCK_TARANTOOL_GIS_VERSION \ + && : "gperftools" \ + && luarocks install gperftools $LUAROCK_TARANTOOL_GPERFTOOLS_VERSION \ + && : "---------- remove build deps ----------" \ + && apk del .build-deps \ + && rm -rf /rocks + +RUN mkdir -p /var/lib/tarantool \ + && chown tarantool:tarantool /var/lib/tarantool \ + && mkdir -p /opt/tarantool \ + && chown tarantool:tarantool /opt/tarantool \ + && mkdir -p /var/run/tarantool \ + && chown tarantool:tarantool /var/run/tarantool \ + && mkdir /etc/tarantool \ + && chown tarantool:tarantool /etc/tarantool + +VOLUME /var/lib/tarantool +WORKDIR /opt/tarantool + +COPY files/tarantool-entrypoint.lua /usr/local/bin/ +COPY files/tarantool_set_config.lua /usr/local/bin/ +COPY files/docker-entrypoint.sh /usr/local/bin/ +COPY files/console /usr/local/bin/ +COPY files/tarantool_is_up /usr/local/bin/ +COPY files/tarantool.default /usr/local/etc/default/tarantool + +RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] + +HEALTHCHECK CMD tarantool_is_up + +EXPOSE 3301 +CMD [ "tarantool" ] diff --git a/dockerfiles/alpine_3.5_2.2.1 b/dockerfiles/alpine_3.5_2.2.1 new file mode 100644 index 0000000..a5fff8b --- /dev/null +++ b/dockerfiles/alpine_3.5_2.2.1 @@ -0,0 +1,253 @@ +FROM alpine:3.5 +MAINTAINER mail@racktear.com + +RUN addgroup -S tarantool \ + && adduser -S -G tarantool tarantool \ + && apk add --no-cache 'su-exec>=0.2' + +# An ARG instruction goes out of scope at the end of the build +# stage where it was defined. To use an arg in multiple stages, +# each stage must include the ARG instruction +ARG TNT_VER +ENV TARANTOOL_VERSION=${TNT_VER} \ + TARANTOOL_DOWNLOAD_URL=https://github.com/tarantool/tarantool.git \ + TARANTOOL_INSTALL_LUADIR=/usr/local/share/tarantool \ + CURL_REPO=https://github.com/curl/curl.git \ + CURL_TAG=curl-7_59_0 \ + GPERFTOOLS_REPO=https://github.com/gperftools/gperftools.git \ + GPERFTOOLS_TAG=gperftools-2.5 \ + LUAROCKS_URL=https://github.com/tarantool/luarocks/archive/6e6fe62d9409fe2103c0fd091cccb3da0451faf5.tar.gz \ + LUAROCK_SHARD_REPO=https://github.com/tarantool/shard.git \ + LUAROCK_SHARD_TAG=8f8c5a7 \ + LUAROCK_AVRO_SCHEMA_VERSION=2.0.1 \ + LUAROCK_EXPERATIOND_VERSION=1.0.1 \ + LUAROCK_QUEUE_VERSION=1.0.2 \ + LUAROCK_CONNPOOL_VERSION=1.1.1 \ + LUAROCK_HTTP_VERSION=1.0.1 \ + LUAROCK_MEMCACHED_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_PG_VERSION=2.0.1 \ + LUAROCK_TARANTOOL_MYSQL_VERSION=2.0.1 \ + LUAROCK_TARANTOOL_CURL_VERSION=2.3.1 \ + LUAROCK_TARANTOOL_MQTT_VERSION=1.2.1 \ + LUAROCK_TARANTOOL_GIS_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_PROMETHEUS_VERSION=1.0.0 \ + LUAROCK_TARANTOOL_GPERFTOOLS_VERSION=1.0.1 + +COPY files/gperftools_alpine.diff / + +RUN set -x \ + && apk add --no-cache --virtual .run-deps \ + libstdc++ \ + readline \ + libressl \ + yaml \ + lz4 \ + binutils \ + ncurses \ + libgomp \ + lua \ + tar \ + zip \ + libunwind \ + icu \ + ca-certificates \ + && apk add --no-cache --virtual .build-deps \ + perl \ + gcc \ + g++ \ + cmake \ + readline-dev \ + libressl-dev \ + yaml-dev \ + lz4-dev \ + binutils-dev \ + ncurses-dev \ + lua-dev \ + musl-dev \ + make \ + git \ + libunwind-dev \ + autoconf \ + automake \ + libtool \ + linux-headers \ + go \ + tcl \ + icu-dev \ + wget \ + && : "---------- curl ----------" \ + && mkdir -p /usr/src/curl \ + && git clone "$CURL_REPO" /usr/src/curl \ + && git -C /usr/src/curl checkout "$CURL_TAG" \ + && (cd /usr/src/curl \ + && ./buildconf \ + && ./configure --prefix "/usr/local" \ + && make -j \ + && make install) \ + && : "---------- gperftools ----------" \ + && mkdir -p /usr/src/gperftools \ + && git clone "$GPERFTOOLS_REPO" /usr/src/gperftools \ + && git -C /usr/src/gperftools checkout "$GPERFTOOLS_TAG" \ + && (cd /usr/src/gperftools; \ + patch -p1 < /gperftools_alpine.diff; \ + rm /gperftools_alpine.diff; \ + ./autogen.sh; \ + ./configure; \ + make; \ + cp .libs/libprofiler.so* /usr/local/lib;) \ + && (GOPATH=/usr/src/go go get github.com/google/pprof; \ + cp /usr/src/go/bin/pprof /usr/local/bin) \ + && : "---------- tarantool ----------" \ + && mkdir -p /usr/src/tarantool \ + && git clone "$TARANTOOL_DOWNLOAD_URL" /usr/src/tarantool \ + && git -C /usr/src/tarantool checkout "$TARANTOOL_VERSION" \ + && git -C /usr/src/tarantool submodule update --init --recursive \ + && (cd /usr/src/tarantool; \ + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo\ + -DENABLE_BUNDLED_LIBYAML:BOOL=OFF\ + -DENABLE_BACKTRACE:BOOL=ON\ + -DENABLE_DIST:BOOL=ON\ + .) \ + && make -C /usr/src/tarantool -j\ + && make -C /usr/src/tarantool install \ + && make -C /usr/src/tarantool clean \ + && : "---------- small ----------" \ + && (cd /usr/src/tarantool/src/lib/small; \ + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + .) \ + && make -C /usr/src/tarantool/src/lib/small \ + && make -C /usr/src/tarantool/src/lib/small install \ + && make -C /usr/src/tarantool/src/lib/small clean \ + && : "---------- msgpuck ----------" \ + && (cd /usr/src/tarantool/src/lib/msgpuck; \ + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + .) \ + && make -C /usr/src/tarantool/src/lib/msgpuck \ + && make -C /usr/src/tarantool/src/lib/msgpuck install \ + && make -C /usr/src/tarantool/src/lib/msgpuck clean \ + && : "---------- luarocks ----------" \ + && wget -O luarocks.tar.gz "$LUAROCKS_URL" \ + && mkdir -p /usr/src/luarocks \ + && tar -xzf luarocks.tar.gz -C /usr/src/luarocks --strip-components=1 \ + && (cd /usr/src/luarocks; \ + ./configure; \ + make build; \ + make install) \ + && rm -r /usr/src/luarocks \ + && rm -rf /usr/src/tarantool \ + && rm -rf /usr/src/gperftools \ + && rm -rf /usr/src/go \ + && : "---------- remove build deps ----------" \ + && apk del .build-deps + +COPY files/luarocks-config.lua /usr/local/etc/luarocks/config-5.1.lua + +RUN set -x \ + && apk add --no-cache --virtual .run-deps \ + mariadb-client-libs \ + libpq \ + cyrus-sasl \ + mosquitto-libs \ + libev \ + && apk add --no-cache --virtual .build-deps \ + git \ + cmake \ + make \ + coreutils \ + gcc \ + g++ \ + postgresql-dev \ + lua-dev \ + musl-dev \ + cyrus-sasl-dev \ + mosquitto-dev \ + libev-dev \ + libressl-dev \ + && mkdir -p /rocks \ + && : "---------- proj (for gis module) ----------" \ + && wget -O proj.tar.gz http://download.osgeo.org/proj/proj-4.9.3.tar.gz \ + && mkdir -p /usr/src/proj \ + && tar -xzf proj.tar.gz -C /usr/src/proj --strip-components=1 \ + && (cd /usr/src/proj; \ + ./configure; \ + make; \ + make install) \ + && rm -r /usr/src/proj \ + && rm -rf /usr/src/proj \ + && : "---------- geos (for gis module) ----------" \ + && wget -O geos.tar.bz2 http://download.osgeo.org/geos/geos-3.6.0.tar.bz2 \ + && mkdir -p /usr/src/geos \ + && tar -xjf geos.tar.bz2 -C /usr/src/geos --strip-components=1 \ + && (cd /usr/src/geos; \ + ./configure; \ + make; \ + make install) \ + && rm -r /usr/src/geos \ + && rm -rf /usr/src/geos \ + && : "---------- luarocks ----------" \ + && luarocks install lua-term \ + && luarocks install ldoc \ + && : "avro" \ + && luarocks install avro-schema $LUAROCK_AVRO_SCHEMA_VERSION \ + && : "expirationd" \ + && luarocks install expirationd $LUAROCK_EXPERATIOND_VERSION \ + && : "queue" \ + && luarocks install queue $LUAROCK_QUEUE_VERSION \ + && : "connpool" \ + && luarocks install connpool $LUAROCK_CONNPOOL_VERSION \ + && : "shard" \ + && git clone $LUAROCK_SHARD_REPO /rocks/shard \ + && git -C /rocks/shard checkout $LUAROCK_SHARD_TAG \ + && (cd /rocks/shard && luarocks make *rockspec) \ + && : "http" \ + && luarocks install http $LUAROCK_HTTP_VERSION \ + && : "pg" \ + && luarocks install pg $LUAROCK_TARANTOOL_PG_VERSION \ + && : "mysql" \ + && luarocks install mysql $LUAROCK_TARANTOOL_MYSQL_VERSION \ + && : "memcached" \ + && luarocks install memcached $LUAROCK_MEMCACHED_VERSION \ + && : "prometheus" \ + && luarocks install prometheus $LUAROCK_TARANTOOL_PROMETHEUS_VERSION \ + && : "curl" \ + && luarocks install tarantool-curl $LUAROCK_TARANTOOL_CURL_VERSION \ + && : "mqtt" \ + && luarocks install mqtt $LUAROCK_TARANTOOL_MQTT_VERSION \ + && : "gis" \ + && luarocks install gis $LUAROCK_TARANTOOL_GIS_VERSION \ + && : "gperftools" \ + && luarocks install gperftools $LUAROCK_TARANTOOL_GPERFTOOLS_VERSION \ + && : "---------- remove build deps ----------" \ + && apk del .build-deps \ + && rm -rf /rocks + +RUN mkdir -p /var/lib/tarantool \ + && chown tarantool:tarantool /var/lib/tarantool \ + && mkdir -p /opt/tarantool \ + && chown tarantool:tarantool /opt/tarantool \ + && mkdir -p /var/run/tarantool \ + && chown tarantool:tarantool /var/run/tarantool \ + && mkdir /etc/tarantool \ + && chown tarantool:tarantool /etc/tarantool + +VOLUME /var/lib/tarantool +WORKDIR /opt/tarantool + +COPY files/tarantool-entrypoint.lua /usr/local/bin/ +COPY files/tarantool_set_config.lua /usr/local/bin/ +COPY files/docker-entrypoint.sh /usr/local/bin/ +COPY files/console /usr/local/bin/ +COPY files/tarantool_is_up /usr/local/bin/ +COPY files/tarantool.default /usr/local/etc/default/tarantool + +RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] + +HEALTHCHECK CMD tarantool_is_up + +EXPOSE 3301 +CMD [ "tarantool" ] diff --git a/versions/alpine_3.5_1.10.0 b/versions/alpine_3.5_1.10.0 new file mode 100644 index 0000000..818e3ac --- /dev/null +++ b/versions/alpine_3.5_1.10.0 @@ -0,0 +1 @@ +1.10.0-0-g42612ec04 diff --git a/versions/alpine_3.5_1.10.2 b/versions/alpine_3.5_1.10.2 new file mode 100644 index 0000000..5c1acd3 --- /dev/null +++ b/versions/alpine_3.5_1.10.2 @@ -0,0 +1 @@ +1.10.2-0-gc0d8063b6 diff --git a/versions/alpine_3.5_1.10.3 b/versions/alpine_3.5_1.10.3 new file mode 100644 index 0000000..515f8f7 --- /dev/null +++ b/versions/alpine_3.5_1.10.3 @@ -0,0 +1 @@ +1.10.3-0-g0b7078a93 diff --git a/versions/alpine_3.5_1.10.4 b/versions/alpine_3.5_1.10.4 new file mode 100644 index 0000000..19bee8b --- /dev/null +++ b/versions/alpine_3.5_1.10.4 @@ -0,0 +1 @@ +1.10.4-0-g9dbcdba14 diff --git a/versions/alpine_3.5_2.1.1 b/versions/alpine_3.5_2.1.1 new file mode 100644 index 0000000..0c1c7e7 --- /dev/null +++ b/versions/alpine_3.5_2.1.1 @@ -0,0 +1 @@ +2.1.1-0-g8a09adb46 diff --git a/versions/alpine_3.5_2.1.2 b/versions/alpine_3.5_2.1.2 new file mode 100644 index 0000000..707313e --- /dev/null +++ b/versions/alpine_3.5_2.1.2 @@ -0,0 +1 @@ +2.1.2-2-gd06f95fc1 diff --git a/versions/alpine_3.5_2.1.3 b/versions/alpine_3.5_2.1.3 new file mode 100644 index 0000000..b242e69 --- /dev/null +++ b/versions/alpine_3.5_2.1.3 @@ -0,0 +1 @@ +2.1.3-1-g62c1bcdaf diff --git a/versions/alpine_3.5_2.2.0 b/versions/alpine_3.5_2.2.0 new file mode 100644 index 0000000..c8920cc --- /dev/null +++ b/versions/alpine_3.5_2.2.0 @@ -0,0 +1 @@ +2.2.0-0-gb58001013 diff --git a/versions/alpine_3.5_2.2.1 b/versions/alpine_3.5_2.2.1 new file mode 100644 index 0000000..10db341 --- /dev/null +++ b/versions/alpine_3.5_2.2.1 @@ -0,0 +1 @@ +2.2.1-3-g878e2a42c diff --git a/versions/alpine_3.5_2.2.2 b/versions/alpine_3.5_2.2.2 new file mode 100644 index 0000000..243a7ec --- /dev/null +++ b/versions/alpine_3.5_2.2.2 @@ -0,0 +1 @@ +2.2.2-4-g4f8ac5999 diff --git a/versions/alpine_3.5_2.3 b/versions/alpine_3.5_2.3 new file mode 100644 index 0000000..0d9a82f --- /dev/null +++ b/versions/alpine_3.5_2.3 @@ -0,0 +1 @@ +2.3.1-2-g92750c828 diff --git a/versions/alpine_3.5_2.3.1 b/versions/alpine_3.5_2.3.1 new file mode 100644 index 0000000..0d9a82f --- /dev/null +++ b/versions/alpine_3.5_2.3.1 @@ -0,0 +1 @@ +2.3.1-2-g92750c828 -- 2.17.1