ClickHouse/dbms/tests/integration/image/Dockerfile
Azat Khuzhin 6d8706e692
clickhouse-client: fix --help without tty
stdin_is_not_tty is detected too late when the --help message is
printed, so fix this and do not call ioctl if stdin is not tty.

Before this patch:
  $ clickhouse-client --help < /dev/null

debug build:
  $ dbms/programs/clickhouse-client --help < /dev/null
  Main options:
    --help
  clickhouse-client: ../contrib/boost/libs/program_options/src/options_description.cpp:542:
  void boost::program_options::{anonymous}::format_description(std::ostream&, const string&, unsigned int, unsigned int): Assertion `line_length > first_column_width' failed.
  Aborted (core dumped)

release build:
  $ dbms/programs/clickhouse-client --help < /dev/null
  .... print lots of empty lines and so forth ...

v2: add a test and bsdutils into image for tests
v3: adjust minimal cols to the length of one of the longest arguments,
since with line_length=3 boost will bail anyway (under script(1)
ioctl(TIOCGWINSZ) returnes ws_col=0)
2019-03-23 02:01:32 +03:00

66 lines
1.5 KiB
Docker

FROM ubuntu:18.04
RUN apt-get update && env DEBIAN_FRONTEND=noninteractive apt-get install --yes --force-yes \
ca-certificates \
bash \
btrfs-progs \
e2fsprogs \
iptables \
xfsprogs \
tar \
pigz \
wget \
git \
iproute2 \
module-init-tools \
cgroupfs-mount \
python-pip \
tzdata \
libreadline-dev \
libicu-dev \
bsdutils \
curl
ENV TZ=Europe/Moscow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN pip install pytest docker-compose==1.22.0 docker dicttoxml kazoo PyMySQL psycopg2 pymongo tzlocal
ENV DOCKER_CHANNEL stable
ENV DOCKER_VERSION 17.09.1-ce
RUN set -eux; \
\
# this "case" statement is generated via "update.sh"
\
if ! wget -O docker.tgz "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz"; then \
echo >&2 "error: failed to download 'docker-${DOCKER_VERSION}' from '${DOCKER_CHANNEL}' for '${x86_64}'"; \
exit 1; \
fi; \
\
tar --extract \
--file docker.tgz \
--strip-components 1 \
--directory /usr/local/bin/ \
; \
rm docker.tgz; \
\
dockerd --version; \
docker --version
COPY modprobe.sh /usr/local/bin/modprobe
COPY dockerd-entrypoint.sh /usr/local/bin/
RUN set -x \
&& addgroup --system dockremap \
&& adduser --system dockremap \
&& adduser dockremap dockremap \
&& echo 'dockremap:165536:65536' >> /etc/subuid \
&& echo 'dockremap:165536:65536' >> /etc/subgid
VOLUME /var/lib/docker
EXPOSE 2375
ENTRYPOINT ["dockerd-entrypoint.sh"]
CMD []