You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@iotdb.apache.org by 程建云 <ch...@360.cn> on 2021/10/22 08:39:06 UTC

答复: [DISCUSS] use different docker image name for iotdb modules

Hi,

In my opinion, IoTDB-Grafana is a relative independent module(it only depends on iotdb-jdbc). It isn't core of the IoTDB which could be move out of core repo if necessary. But cluster is not a independent module which must have standalone inside of it. User actually can start standalone in a cluster image. According to the relationship, we may could have docker repo like this:

```
IoTDB-core: cores modules of IoTDB, cluster, standalone right now. Use different command to start different module.
IoTDB-supports(suggest better name:)): includes external tools, connectors. Use different command to start different component.
```

In the way, we can control the size of repos to avoid too many releases, readmes and have relative limited image size at the same time.

WDYT?

Thanks!
Jianyun Cheng
________________________________
发件人: Julian Feinauer <j....@pragmaticminds.de>
发送时间: 2021年10月21日 15:28:33
收件人: dev@iotdb.apache.org
主题: 【可能伪造邮件 POSSIBLY SPOOFED 】AW: [DISCUSS] use different docker image name for iotdb modules

Hey,

good that we have a discussion here. I am unemotional about the outcome and I see advantages and disadvantages for both (3 releases, 3 readmes, …) in the first scenario but all the points below in the other one.

So its good to have many opinions here : )

Julian

Von: gaoyang <45...@qq.com.INVALID>
Datum: Donnerstag, 21. Oktober 2021 um 08:58
An: dev@iotdb.apache.org <de...@iotdb.apache.org>
Betreff: Re: [DISCUSS] use different docker image name for iotdb modules
1. Docker use a UFS file system, different images can share the same file layer, such as JRE…,  so, If I have two both iot-granafa and iot images in my server, actually, I have only one JRE layer.

2. Say I am a user, I only want to use the grafana module, then I have to pass a ‘grafana’ param when I run a container, it’s a bit of annoying…

3. In some case, say I am using a k8s, if I want write my own entrypoint script, I have to pass a ‘grafana’ param to the iot entrypoint script…

4. Someone hope the image as small as possible, if I only want a grafana, why give me an additional iotdb-cluster?

In Summary, I prefer there standalone images to a three-in-one image.

> 2021年10月20日 下午9:47,Xiangdong Huang <sa...@gmail.com> 写道:
>
>> Downside is that the image would be a bit bigger.
>
> Well, I think it is fine, as current image is huge because of JRE...
> and the 3 modules have many same files..
>
> I think `docker run image command` is also a good solution and maybe
> better than my proposal :D
>
> But can docker-compose also use different command using the same docker image?
>
> Best,
> -----------------------------------
> Xiangdong Huang
> School of Software, Tsinghua University
>
> 黄向东
> 清华大学 软件学院
>
> Julian Feinauer <j....@pragmaticminds.de> 于2021年10月20日周三 下午9:25写道:
>>
>> Hey,
>>
>> I agree with it (and already stumbled upon it).
>>
>> Another alternative would be to have only one image containing data for all three modules and an entrypoint script which distinguishes what process would really start.
>>
>> So you would just do
>>
>> ```
>> docker run iotdb <-- regular
>> docker run iotdb cluster <-- cluster mode
>> docker run iotdb Grafana <-- grafana bridge
>> ```
>>
>> Downside is that the image would be a bit bigger.
>> Advantage is that we cannot miss once but simply ship one image and that’s it.
>>
>> WDYT?
>>
>> Julian
>>
>> Von: Xiangdong Huang <sa...@gmail.com>
>> Datum: Mittwoch, 20. Oktober 2021 um 15:13
>> An: dev <de...@iotdb.apache.org>
>> Betreff: [DISCUSS] use different docker image name for iotdb modules
>> Hi,
>>
>> Now all iotdb's docker images are under apache/iotdb, e.g.,
>>
>> - apache/iotdb:0.12.2-node for the single node module
>> - apache/iotdb:0.12.2-cluster for the cluster module
>>
>> and
>> - apache/iotdb:0.12.2-grafana for the grafana connector module
>>
>> In this way, we actually use the version of the images to distinguish
>> different modules.
>>
>> The advantage is that users can find all images in one webpage [1]
>>
>> The disadvantage is that it is hard to define the tag of "latest".
>>
>> The problem will be more serious when using docker-compose, for example,
>> we may write a docker-compose file for starting iotdb server, grafana,
>> iotdb-grafana-connector:
>>
>> ```
>> services:
>>    iotdb:
>>      image: apache/iotdb:0.12.2-node
>>    grafana-connector:
>>      image: apache/iotdb:0.12.2-grafana
>> ```
>>
>> Then we can not use "latest" and we have to maintain docker-compose
>> file for each version.
>> If we separate the docker repo into individuals, then we never do not
>> need to maintain the docker compose file:
>>
>> ```
>> services:
>>    iotdb:
>>      image: apache/iotdb
>>    grafana-connector:
>>      image: apache/iotdb-grafana
>> ```
>> and the docker compose file will use the "latest" version directly.
>>
>>
>> So, my idea is, apply 3 repos for iotdb docker images:
>> - iotdb, for iotdb-node
>> - iotdb-cluster, for the cluster module
>> - iotdb-grafana, for iotdb-grafana-connecotr module.
>>
>> How do you think?
>>
>>
>> [1] https://hub.docker.com/r/apache/iotdb
>>
>> Best,
>> -----------------------------------
>> Xiangdong Huang
>> School of Software, Tsinghua University
>>
>> 黄向东
>> 清华大学 软件学院