基本环境:
[root@0b3608de9c84 tmp]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
我想在Dockerfile中安装Kafka,下面是我的Dockerfile指令:
#choose scala and kafka version
ENV KAFKA_VERSION="0.8.2.1" SCALA_VERSION="2.11"
#install kafka
RUN cd /tmp && wget https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz && tar xf kafka_${SCALA_VERSIO N}-${KAFKA_VERSION}.tgz -C /opt && rm kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz
我知道https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz
(或https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz)不是真正的资源地址。您能否帮助我使用wget和Kafka网页上的网址正确安装Kafka?
答案 0 :(得分:2)
正如您所指出的那样,https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz不是真正的地址。相反,它链接到靠近您所在位置的镜像站点,例如,我居住在爱尔兰,因此ftp.heanet.ie
是距离我所在位置最近的镜像。
您应该(手动)使用wget
命令中相关镜像站点的URL,例如
wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz
另一个问题是tar
命令的shell变量中的空格:
tar xf kafka_${SCALA_VERSIO N}-${KAFKA_VERSION}.tgz
结合上述修复应该会给你类似的东西:
RUN cd /tmp && wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz && tar xf kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && rm kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz