如何在CentOS 7上输入这样的网址:https://www.apache.org/dyn/closer.cgi?path = / kafka / 0.8.2.1 / kafka_2.11-0.8.2.1.tgz`

时间:2015-09-25 08:02:15

标签: docker centos apache-kafka

基本环境:

[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?

1 个答案:

答案 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