This is an automated email from the ASF dual-hosted git repository. hxd pushed a commit to branch docker-0.11-0.12 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6a2a0dee1113eb25735cda922f9c9296bca7eedb Author: xiangdong huang <[email protected]> AuthorDate: Sat Apr 17 14:59:56 2021 +0800 add dockerfile for 0.11.3 and 0.12.0 --- client-py/release.sh | 3 ++ docker/ReadMe.md | 50 ++++++++++++++++++-- .../src/main/Dockerfile-0.11.3 | 40 ++++++++-------- docker/src/main/Dockerfile-0.12.0-cluster | 53 ++++++++++++++++++++++ docker/src/main/Dockerfile-0.12.0-node | 45 ++++++++++++++++++ 5 files changed, 168 insertions(+), 23 deletions(-) diff --git a/client-py/release.sh b/client-py/release.sh index 94a56a6..2d9ca29 100755 --- a/client-py/release.sh +++ b/client-py/release.sh @@ -19,6 +19,9 @@ # under the License. # +# the python version must be python3. +python --version + rm -Rf build rm -Rf dist rm -Rf iotdb_session.egg_info diff --git a/docker/ReadMe.md b/docker/ReadMe.md index a416dd3..0eb3db3 100644 --- a/docker/ReadMe.md +++ b/docker/ReadMe.md @@ -19,13 +19,27 @@ --> +# Docker image version definition + +Before v0.12, Apache IoTDB's docker image name and version format is: +`apache/iotdb:0.<major>.<minor>`. + +From 0.12 on, we release two images: one is for a single node, and the other is for the cluster mode. +The format is: `apache/iotdb:0.<major>.<minor>-node` and `apache/iotdb:0.<major>.<minor>-cluster`. + +## The definition of tag "latest" +Before v0.12, the "latest" tag will forward to the largest `apache/iotdb:0.<major>.<minor>`. + +From 0.12 on, the "latest" tag will forward to the largest `apache/iotdb:0.<major>.<minor>-node`. + + # How to build docker build -t THE_DOCKER_IMAGE_NAME:THE_VERSION -f THE_DOCKER_FILE_NAME e.g., -``` +```shell docker build -t my-iotdb:<version> -f Dockerfile-<version> ``` @@ -34,17 +48,35 @@ docker build -t my-iotdb:<version> -f Dockerfile-<version> Actually, we maintain a repo on dockerhub, so that you can get the docker image directly. For example, -``` + +```shell docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 apache/iotdb:<version> ``` +```shell +docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 -p 5555:5555 -p 9003:9003 -p 40010:40010 apache/iotdb:<version> +``` + +## Port description + +By default, the ports that IoTDB uses are: + +* 6667: RPC port +* 31999: JMX port +* 8181: Monitor port +* 5555: Data sync port +* 9003: internal metadata rpc port (for cluster) +* 40010: internal data rpc port (for cluster) + + ## How to configure docker volumes The instructions below show how to store the output data and logs of IoTDB to two folders called iotdb_data and iotdb_logs respectively. `/D/docker/iotdb_data` and `/D/docker/iotdb_logs` can be changed to any local directory of your own host. -``` + +```shell docker run -it -v /D/docker/iotdb_data:/iotdb/data -v /D/docker/iotdb_logs:/iotdb/logs --name 123 apache/iotdb:<version> ``` @@ -54,16 +86,24 @@ Suppose you have run an IoTDB Server in docker 1. Use `docker ps` to find out the CONTAINER ID e.g., -``` + +```shell $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c82321c70137 apache/iotdb:<version> "/iotdb/sbin/start-s…" 12 minutes ago Up 12 minutes 0.0.0.0:6667->6667/tcp, 0.0.0.0:8181->8181/tcp, 5555/tcp, 0.0.0.0:31999->31999/tcp elegant_germain ``` 2. Use `docker exec` to attach the container: -``` + +```shell docker exec -it c82321c70137 /bin/bash ``` Then, for the latest version (or, >=0.10.x), run `start-cli.sh`, for version 0.9.x and 0.8.1, run `start-client.sh`. +Or, + +```shell +docker exec -it c82321c70137 start-cli.sh +``` + Enjoy it! diff --git a/client-py/release.sh b/docker/src/main/Dockerfile-0.11.3 old mode 100755 new mode 100644 similarity index 51% copy from client-py/release.sh copy to docker/src/main/Dockerfile-0.11.3 index 94a56a6..0de4faa --- a/client-py/release.sh +++ b/docker/src/main/Dockerfile-0.11.3 @@ -1,5 +1,3 @@ -#!/usr/bin/env bash -# # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -19,19 +17,25 @@ # under the License. # -rm -Rf build -rm -Rf dist -rm -Rf iotdb_session.egg_info - -# (Re-)build generated code -(cd ..; mvn clean generate-sources -pl client-py -am) - -# Run Linting -flake8 - -# Run unit tests -pytest . - -# See https://packaging.python.org/tutorials/packaging-projects/ -python setup.py sdist bdist_wheel -twine upload --repository pypi dist/* \ No newline at end of file +FROM openjdk:11-jre-slim +RUN apt update \ + # procps is for `free` command + && apt install wget unzip lsof procps -y \ + && wget https://downloads.apache.org/iotdb/0.11.3/apache-iotdb-0.11.3-bin.zip \ + # if you are in China, use the following URL + #&& wget https://mirrors.tuna.tsinghua.edu.cn/apache/iotdb/0.11.3/apache-iotdb-0.11.3-bin.zip \ + && unzip apache-iotdb-0.11.3-bin.zip \ + && rm apache-iotdb-0.11.3-bin.zip \ + && mv apache-iotdb-0.11.3 /iotdb \ + && apt remove wget unzip -y \ + && apt autoremove -y \ + && apt purge --auto-remove -y \ + && apt clean -y +EXPOSE 6667 +EXPOSE 31999 +EXPOSE 5555 +EXPOSE 8181 +VOLUME /iotdb/data +VOLUME /iotdb/logs +ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}" +ENTRYPOINT ["/iotdb/sbin/start-server.sh"] diff --git a/docker/src/main/Dockerfile-0.12.0-cluster b/docker/src/main/Dockerfile-0.12.0-cluster new file mode 100644 index 0000000..a201d6e --- /dev/null +++ b/docker/src/main/Dockerfile-0.12.0-cluster @@ -0,0 +1,53 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +FROM openjdk:11-jre-slim +RUN apt update \ + # procps is for `free` command + && apt install wget unzip lsof procps -y \ + && wget https://downloads.apache.org/iotdb/0.12.0/apache-iotdb-0.12.0-cluster-bin.zip \ + # if you are in China, use the following URL + #&& wget https://mirrors.tuna.tsinghua.edu.cn/apache/iotdb/0.12.0/apache-iotdb-0.12.0-cluster-bin.zip \ + && unzip apache-iotdb-0.12.0-cluster-bin.zip \ + && rm apache-iotdb-0.12.0-cluster-bin.zip \ + && mv apache-iotdb-0.12.0-cluster-bin /iotdb \ + && apt remove wget unzip -y \ + && apt autoremove -y \ + && apt purge --auto-remove -y \ + && apt clean -y \ + # modify the seeds in configuration file + && sed -i '/^seed_nodes/cseed_nodes=127.0.0.1:9003' /iotdb/conf/iotdb-cluster.properties \ + && sed -i '/^default_replica_num/cdefault_replica_num=1' /iotdb/conf/iotdb-cluster.properties + +# rpc port +EXPOSE 6667 +# JMX port +EXPOSE 31999 +# sync port +EXPOSE 5555 +# monitor port +EXPOSE 8181 +# internal meta port +EXPOSE 9003 +# internal data port +EXPOSE 40010 +VOLUME /iotdb/data +VOLUME /iotdb/logs +ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}" +ENTRYPOINT ["/iotdb/sbin/start-node.sh"] diff --git a/docker/src/main/Dockerfile-0.12.0-node b/docker/src/main/Dockerfile-0.12.0-node new file mode 100644 index 0000000..7706f63 --- /dev/null +++ b/docker/src/main/Dockerfile-0.12.0-node @@ -0,0 +1,45 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +FROM openjdk:11-jre-slim +RUN apt update \ + # procps is for `free` command + && apt install wget unzip lsof procps -y \ + && wget https://downloads.apache.org/iotdb/0.12.0/apache-iotdb-0.12.0-server-bin.zip \ + # if you are in China, use the following URL + #&& wget https://mirrors.tuna.tsinghua.edu.cn/apache/iotdb/0.12.0/apache-iotdb-0.12.0-server-bin.zip \ + && unzip apache-iotdb-0.12.0-server-bin.zip \ + && rm apache-iotdb-0.12.0-server-bin.zip \ + && mv apache-iotdb-0.12.0-server-bin /iotdb \ + && apt remove wget unzip -y \ + && apt autoremove -y \ + && apt purge --auto-remove -y \ + && apt clean -y +# rpc port +EXPOSE 6667 +# JMX port +EXPOSE 31999 +# sync port +EXPOSE 5555 +# monitor port +EXPOSE 8181 +VOLUME /iotdb/data +VOLUME /iotdb/logs +ENV PATH="/iotdb/sbin/:/iotdb/tools/:${PATH}" +ENTRYPOINT ["/iotdb/sbin/start-server.sh"]
