250 votes

/bin/sh : apt-get : non trouvé

J'essaie de modifier un fichier docker pour qu'il fonctionne avec aspell. J'ai un bash script que je veux envelopper dans un dockerFile.

Step 4: Wrap the script in a Docker container.

The sample SDK we downloaded earlier contains an example of an action wrapped in a Docker container. In particular, the sample SDK includes a Dockerfile that builds the C program in client/example.c and installs the binary as /blackbox/client/action .

The key line in the sample Dockerfile is:

RUN cd /blackbox/client; gcc -o action example.c

Instead of compiling example.c and installing the binary as an action, we’ll change the Dockerfile to install aspell into the Linux environment, and then install our action.sh script as the executable action command.

To do so, we delete the RUN command above, and insert the following commands into the Dockerfile:

RUN apt-get install -y aspell
RUN rm -f /blackbox/client/action
ADD action.sh /blackbox/client/action

J'essaie de faire cela avec le fichier docker ci-dessous.

# Dockerfile for example whisk docker action
FROM openwhisk/dockerskeleton

ENV FLASK_PROXY_PORT 8080

### Add source file(s)
ADD example.c /action/example.c

RUN sudo apt-get install -y aspell
RUN rm -f /blackbox/client/action
ADD action.sh /blackbox/client/action

CMD ["/home/huseyin/bin", "-c", "cd actionProxy && python -u actionproxy.py"]

le tutoriel est dépassé donc je ne peux pas réussir à le faire. Pouvez-vous m'aider ?

5 votes

Le conteneur Docker n'est pas basé sur Debian ? S'il n'est pas basé sur Debian, la gestion des paquets par apt ne fonctionnera pas.

2 votes

J'ai été dans une position très bête, sans rapport avec la question actuelle, mais qui peut peut-être sauver un autre Googler qui atterrit ici - j'avais couru docker run ubuntu:latest quand je voulais courir docker run -it ubuntu:latest . Je pensais que je courrais apt-get à l'intérieur du conteneur, mais c'était en fait dans le terminal Mac. Oups.

635voto

Serey Points 3162

Le site l'image que vous utilisez est Basé sur les Alpes donc vous ne pouvez pas utiliser apt-get car c'est le gestionnaire de paquets d'Ubuntu.

Pour corriger cela, il suffit d'utiliser :

apk update et apk add

41 votes

Est-ce que cela remet en cause les raisons d'utiliser Alpine au départ ou est-ce que cela maintient l'image d'Alpine considérablement légère ?

1 votes

Comment modifier la commande ci-dessous ? hub.docker.com/r/buildkite/puppeteer/dockerfile

79voto

VenuGopalTewari Points 144

Si vous regardez dans le dockerfile pendant la création de l'image, ajoutez cette ligne :

RUN apk add --update yourPackageName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X