web-dev-qa-db-fra.com

Les commandes de base de l'image Docker Alpine ne fonctionnent pas

docker a commencé à produire des bugs étranges lorsque j'utilisais quelques simples conteneurs basés sur Alpine. Deux de ces problèmes sont:

  • rc-update n'a pas été trouvé lorsque j'essayais de l'utiliser
  • après l'installation du package openssh, il n'y avait rien dans /etc/ssh ou il n'y avait pas de /etc/init.d/sshd pour démarrer/redémarrer le service

Pour éviter toute confusion, j'ai vérifié un conteneur largement utilisé qui sert de simple serveur SSH. Vous pouvez le faire en exécutant:

git clone https://github.com/chamunks/Alpine-openssh.git

Après cela, allez dans le Alpine-openssh répertoire et construire le conteneur avec:

docker build -t Alpine-openssh .

Le mien produit ce qui suit:

Sending build context to Docker daemon 125.4 kB
Step 1 : FROM Alpine
 ---> 4e38e38c8ce0
Step 2 : MAINTAINER Chamunks <[email protected]>
 ---> Running in c21d3fa28903
 ---> f32322a2871a
Removing intermediate container c21d3fa28903
Step 3 : COPY sshd_config /etc/ssh/sshd_config
 ---> 392364fc35ce
Removing intermediate container 4176ae093cb8
Step 4 : ADD https://Gist.githubusercontent.com/chamunks/38c807435ffed53583f0/raw/ec868d1b45e248eb517a134b84474133c3e7dc66/gistfile1.txt /data/.ssh/authorized_keys
Downloading [==================================================>]    864 B/864 B
 ---> c3899b675728
Removing intermediate container f83629b6fa9b
Step 5 : RUN apk add --update openssh &&     rc-update add sshd &&     rc-status &&     touch /run/openrc/softlevel &&     /etc/init.d/sshd start &&     /etc/init.d/sshd stop &&     adduser -D user -h /data/
 ---> Running in 1d1aad9d1678
fetch http://dl-cdn.alpinelinux.org/Alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/Alpine/v3.4/community/x86_64/APKINDEX.tar.gz
(1/3) Installing openssh-client (7.2_p2-r3)
(2/3) Installing openssh-sftp-server (7.2_p2-r3)
(3/3) Installing openssh (7.2_p2-r3)
Executing busybox-1.24.2-r9.trigger
OK: 8 MiB in 14 packages
/bin/sh: rc-update: not found
The command '/bin/sh -c apk add --update openssh &&     rc-update add sshd &&     rc-status &&     touch /run/openrc/softlevel &&     /etc/init.d/sshd start &&     /etc/init.d/sshd stop &&     adduser -D user -h /data/' returned a non-zero code: 127

Remarquez le /bin/sh: rc-update: not found partie. Cela devrait fonctionner mais pas. J'ai redémarré mon service Docker, consulté les forums Docker mais aucun problème similaire n'a été signalé jusqu'à présent.

Des idées pourquoi cela se produit-il?

15
SLOBY

Le rc-update l'outil est un faisant partie du package openrc

apk add openrc
33
Matt