【问题标题】:Attempting to Deploy a clickhouse stack to docker swarm and getting error: Service Builder failed to build: COPY failed尝试将 clickhouse 堆栈部署到 docker swarm 并出现错误:Service Builder failed to build: COPY failed
【发布时间】:2020-01-05 04:28:01
【问题描述】:

我正在学习 docker swarm,我目前在 Ubuntu 16.04 上有一个运行 docker swarm 的三节点 nuc 设置。我希望使用以下官方图片构建一个 2 节点 clickhouse 集群:

https://hub.docker.com/r/yandex/clickhouse-server/dockerfile

我可以在一个节点上轻松地将其作为映像运行,但我正在尝试将 docker 映像部署到 2 个节点,以便我可以使用此文档从那里构建集群:

https://docs.docker.com/engine/swarm/stack-deploy/

但是当我运行docker-compose up -d 时出现以下错误:

ERROR: Service 'builder' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder795701575/docker_related_config.xml: no such file or directory

目录映射:

my_app
----docker-compose.yml
----docker
-------client
-------server
-------builder
            --Dockerfile

Docker 文件: https://hub.docker.com/r/yandex/clickhouse-server/dockerfile

FROM ubuntu:18.04

ARG repository="deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
ARG version=19.1.13
ARG gosu_ver=1.10

RUN apt-get update \
    && apt-get install --yes --no-install-recommends \
        apt-transport-https \
        dirmngr \
        gnupg \
    && mkdir -p /etc/apt/sources.list.d \
    && apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 \
    && echo $repository > /etc/apt/sources.list.d/clickhouse.list \
    && apt-get update \
    && env DEBIAN_FRONTEND=noninteractive \
        apt-get install --allow-unauthenticated --yes --no-install-recommends \
            clickhouse-common-static=$version \
            clickhouse-client=$version \
            clickhouse-server=$version \
            libgcc-7-dev \
            locales \
            tzdata \
            wget \
    && rm -rf \
        /var/lib/apt/lists/* \
        /var/cache/debconf \
        /tmp/* \
    && apt-get clean

ADD https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 /bin/gosu

RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

RUN mkdir /docker-entrypoint-initdb.d

COPY docker_related_config.xml /etc/clickhouse-server/config.d/
COPY entrypoint.sh /entrypoint.sh

RUN chmod +x \
    /entrypoint.sh \
    /bin/gosu

EXPOSE 9000 8123 9009
VOLUME /var/lib/clickhouse

ENV CLICKHOUSE_CONFIG /etc/clickhouse-server/config.xml

ENTRYPOINT ["/entrypoint.sh"]

docker-compose.yml https://github.com/yandex/ClickHouse/blob/master/docker-compose.yml

version: "2"

services:
  builder:
    image: yandex/clickhouse-builder
    build: docker/builder
  client:
    image: yandex/clickhouse-client
    build: docker/client
    command: ['--host', 'server']
  server:
    image: yandex/clickhouse-server
    build: docker/server
    ports:
      - 8123:8123

我是不是在错误地处理这个问题?感谢您的帮助。

更新:

尝试了评论解决方案,但没有奏效:

ERROR: Service 'builder' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder511288209/docker_related_config.xml: no such file or directory

【问题讨论】:

  • 似乎不起作用
  • 文件是否与您的 dockerfile 位于同一文件夹中?
  • 编辑了我的目录图。我犯了一个错误。你指的是哪个文件?
  • 文件docker_related_config.xml 应该与dockerfile 位于同一文件夹中,或者您应该提供COPY 命令的相对路径

标签: docker docker-compose dockerfile clickhouse


【解决方案1】:

查看此项目的 Github 存储库并尝试从那里构建它:https://github.com/yandex/ClickHouse/tree/master/docker/server

不要只是复制 Dockerfile,而是克隆项目并从那里构建它。

【讨论】:

  • 谢谢你,结合这个和 LinPY 提到的内容,我让它运行起来了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 2021-11-16
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多