web-dev-qa-db-ja.com

/ bin / sh:1:apk:Dockerイメージの作成中に見つかりません

Zookeeper用の以下のDockerfileがあり、そのイメージを作成しようとしていますが、エラーが発生しています。私は最近Dockerの使用を開始し、Zookeeperのセットアップで遊んでいるので、理解できません。このエラーはどういう意味ですか?

FROM ubuntu:trusty
MAINTAINER David

RUN apt-get update && apt-get install -y openjdk-7-jre-headless wget
ENV Java_HOME /usr/lib/jvm/Java-7-openjdk-AMD64

# Install required packages
RUN apk add --no-cache \
    bash \
    su-exec

ENV Zoo_USER=zookeeper \
    Zoo_CONF_DIR=/conf \
    Zoo_DATA_DIR=/data \
    Zoo_DATA_LOG_DIR=/datalog \
    Zoo_PORT=2181 \
    Zoo_TICK_TIME=2000 \
    Zoo_INIT_LIMIT=5 \
    Zoo_SYNC_LIMIT=2

# Add a user and make dirs
RUN set -x \
    && adduser -D "$Zoo_USER" \
    && mkdir -p "$Zoo_DATA_LOG_DIR" "$Zoo_DATA_DIR" "$Zoo_CONF_DIR" \
    && chown "$Zoo_USER:$Zoo_USER" "$Zoo_DATA_LOG_DIR" "$Zoo_DATA_DIR" "$Zoo_CONF_DIR"

ARG GPG_KEY=C823E3E5B12AF29C67F81976F5CECB3CB5E9BD2D
ARG DISTRO_NAME=zookeeper-3.4.9

# Download Apache Zookeeper, verify its PGP signature, untar and clean up
RUN set -x \
    && apk add --no-cache --virtual .build-deps \
        gnupg \
    && wget -q "http://www.Apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz" \
    && wget -q "http://www.Apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz.asc" \
    && export GNUPGHOME="$(mktemp -d)" \
    && gpg --keyserver ha.pool.sks-keyservers.net --recv-key "$GPG_KEY" \
    && gpg --batch --verify "$DISTRO_NAME.tar.gz.asc" "$DISTRO_NAME.tar.gz" \
    && tar -xzf "$DISTRO_NAME.tar.gz" \
    && mv "$DISTRO_NAME/conf/"* "$Zoo_CONF_DIR" \
    && rm -r "$GNUPGHOME" "$DISTRO_NAME.tar.gz" "$DISTRO_NAME.tar.gz.asc" \
    && apk del .build-deps

WORKDIR $DISTRO_NAME
VOLUME ["$Zoo_DATA_DIR", "$Zoo_DATA_LOG_DIR"]

EXPOSE $Zoo_PORT 2888 3888

ENV PATH=$PATH:/$DISTRO_NAME/bin \
    ZOOCFGDIR=$Zoo_CONF_DIR

COPY docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["zkServer.sh", "start-foreground"]

以下は私が得たエラーです:

Step 4 : ENV Java_HOME /usr/lib/jvm/Java-7-openjdk-AMD64
 ---> Running in a49507cb9725
 ---> 77b37883caf4
Removing intermediate container a49507cb9725
Step 5 : RUN apk add --no-cache     bash     su-exec
 ---> Running in a4fd76a644cf
/bin/sh: 1: apk: not found
The command '/bin/sh -c apk add --no-cache     bash     su-exec' returned a non-zero code: 127

ここで何か間違っていますか? apkが見つからないのはなぜですか?

15
john

larsks言及 として、apkはAlpineディストリビューション用であり、FROM ubuntu:trustyコマンドでDebianベースのapt-getを選択しました。 FROM行をFROM Alpine:3.4に変更して、apkサポート付きのAlpineベースのイメージに切り替えます。

16
BMitch