在Dockerfile中使用docker-compose

要为tileserver创builddocker镜像,我想通过https://github.com/openmaptiles/openmaptiles/blob/master/QUICKSTART.md将生成的tilemaps包含到构build过程中。

为此,我需要在图像生成过程中“运行docker合成”。

FROM debian:jessie RUN apt-get update \ && apt-get -y install apt-utils RUN apt-get update \ && apt-get -y install ca-certificates curl ENV DOCKER_VERSION 1.12.3 ENV COMPOSE_VERSION 1.9.0 RUN curl -L https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION}.tgz > /tmp/docker-${DOCKER_VERSION}.tgz \ && tar -zxf /tmp/docker-${DOCKER_VERSION}.tgz -C /tmp \ && cp /tmp/docker/docker /usr/local/bin/docker \ && chmod +x /usr/local/bin/docker \ && rm -rf /tmp/docker-${DOCKER_VERSION}.tgz /tmp/docker \ && curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose \ && chmod +x /usr/local/bin/docker-compose # check installation RUN docker-compose -v # install git RUN apt-get -y install git-core # install gawk RUN apt-get -y install gawk # install make RUN apt-get -y install make # Clone Maptiles Repo RUN git clone https://github.com/digitalegarage/openmaptiles /openmaptiles RUN cd /openmaptiles \ && bash quickstart.sh bayern # Start Maptiels Server # on port 8080 CMD make start-tileserver 

试图build立这个dockerfile似乎成功地安装docker-compose,但通过bash脚本启动docker-compose会导致以下错误

 Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. 

你得到这个错误,因为docker守护进程没有在你的容器内运行。 所以你需要和任何运行docker守护进程和指定的DOCKER_HOST envvariables的主机build立连接。 我build议你将你的容器与另一个dockerdocker容器( https://hub.docker.com/_/docker/ )联系起来。 看一看现有的docker泊位解决scheme。