paul-rogers commented on a change in pull request #1348: DRILL-6346: Create an 
Official Drill Docker Container
URL: https://github.com/apache/drill/pull/1348#discussion_r201904088
 
 

 ##########
 File path: distribution/Dockerfile
 ##########
 @@ -0,0 +1,35 @@
+#
+# 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 centos:7
+
+# Project version defined in pom.xml is passed as an argument
+ARG VERSION
+
+# JDK 8 is a pre-requisite to run Drill ; 'which' package is needed for 
drill-config.sh
+RUN yum install -y java-1.8.0-openjdk-devel which ; yum clean all ; rm -rf 
/var/cache/yum
+
+# The drill tarball is generated upon building the Drill project
+COPY target/apache-drill-$VERSION.tar.gz /tmp
+
+# Drill binaries are extracted into the '/opt/drill' directory
+RUN mkdir /opt/drill
+RUN tar -xvzf /tmp/apache-drill-$VERSION.tar.gz --directory=/opt/drill 
--strip-components 1
+
+# Starts Drill in embedded mode and connects to Sqlline
+ENTRYPOINT /opt/drill/bin/drill-embedded
 
 Review comment:
   Env vars are fine: both Docker and K8s support them. The trick here is that 
the set of such configs will be fixed and the code here will need to edit the 
values into the Drill config files, which makes it hard to add 
customer-specific config.
   
   Drill configs, in their full glory, are quite robust (with all the 
`drill-env.sh` and `drill-override.conf `options considered.) Far too much 
stuff to expose as env vars.
   
   Maybe have the "stock" Dockerfile handle the most obvious config settings 
(memory, ZK address, ...) and edit them into the files. (Luckily memory is 
already designed for this, so no work needed.) Then, advanced users can create 
their own Dockerfiles for the advanced cases, using the "stock" one as an 
example to get started.
   
   K8s config maps are just an easy way to pass whole files. Probably the same 
can be done in Docker by putting the files on a local disk, then mounting that 
directory into Docker. Hence, the idea of separating the site directory from 
the Drill distribution; the user can just mount their own site directory. (And, 
it can be from a config map in K8s.)

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to