J'ai le Dockerfile ci-dessous pour zookeeper et j'essaie de créer une image pour cela, mais cela me donne une erreur. J'ai récemment commencé à travailler avec Docker et j'ai commencé à jouer avec une configuration Zookeeper, donc je ne peux pas comprendre. Que signifie cette erreur?
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"]
Voici l'erreur que j'ai obtenue:
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
Suis-je en train de faire quelque chose de mal ici? Pourquoi apk
est-il introuvable?
Comme mention de larsks , apk
est pour les distributions Alpine et vous avez sélectionné FROM ubuntu:trusty
qui est basé sur Debian avec le apt-get
commande. Modifiez votre ligne FROM en FROM Alpine:3.4
pour passer à l'image alpine avec prise en charge apk
.