blob: 9ae67afe1a54433f47a7edc7be1232f3e4e8b6dd [file] [log] [blame]
# 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.
# Build an image that runs a script to load data into the quickstart warehouse.
# The data load script is os-independent, so only build for a fixed OS.
ARG BASE_IMAGE=ubuntu:18.04
FROM ${BASE_IMAGE}
# Common label arguments.
ARG MAINTAINER
ARG URL
ARG VCS_REF
ARG VCS_TYPE
ARG VCS_URL
ARG VERSION
ARG PIP=python-pip
# Install useful utilities. Set to non-interactive to avoid issues when installing tzdata.
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y \
sudo netcat-openbsd less curl iproute2 vim iputils-ping \
libsasl2-dev libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit \
tzdata krb5-user libkrb5-dev ${PIP} && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install impala-shell from pip.
# TODO: consider if it would be better to use the latest impala-shell from the build
# environment.
RUN pip install impala-shell
# Use a non-privileged impala user to run the daemons in the container.
# That user should own everything in the /opt/impala and /var/lib/impala subdirectories
RUN groupadd -r impala -g 1000 && useradd --no-log-init -r -u 1000 -g 1000 impala && \
mkdir -p /opt/impala && chown impala /opt/impala
USER impala
# Copy the client entrypoint and dataload files.
WORKDIR /opt/impala
COPY --chown=impala data-load-entrypoint.sh /data-load-entrypoint.sh
COPY --chown=impala *.sql /opt/impala/sql/
USER impala
# Add the entrypoint.
ENTRYPOINT ["/data-load-entrypoint.sh"]
LABEL name="Apache Impala Quickstart Client" \
description="Client tools for Impala quickstart, including impala-shell and data loading utilities." \
# Common labels.
org.label-schema.maintainer=$MAINTAINER \
org.label-schema.url=$URL \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-type=$VCS_TYPE \
org.label-schema.vcs-url=$VCS_URL \
org.label-schema.version=$VERSION