J'ai modifié le fichier docker-compose.yml
comme indiqué sur https://hub.docker.com/_/solr/ en ajoutant une configuration volumes
et une modification dans entrypoint
. Le fichier modifié est comme indiqué:Exécution d'un script personnalisé à l'aide d'entrypoint dans docker-composer
version: '3'
services:
solr:
image: solr
ports:
- "8983:8983"
volumes:
- ./solr/init.sh:/init.sh
- ./solr/data:/opt/solr/server/solr/mycores
entrypoint:
- init.sh
- docker-entrypoint.sh
- solr-precreate
- mycore
Je dois exécuter cette « init.sh » avant entrypoint commence, pour préparer mes fichiers dans le contenant.
Mais je reçois des erreurs suivantes:
ERROR: for solr_solr_1 Cannot start service solr: oci runtime error: container_linux.go:247: starting container process caused "exec: \"init.sh\": executable file not found in $PATH"
Plus tôt j'ai trouvé sur les crochets d'image officiels dans Neo4j de here. Y at-il une chose similaire que je peux utiliser ici aussi?
Mise à jour 1: De commentaires ci-dessous, j'ai réalisé que dockerfile mis WORKDIR /opt/solr
en raison de laquelle executable file not found in $PATH
. J'ai donc testé en fournissant le chemin absolu d'entrypoint en utilisant /init.sh
. Mais cela donne aussi une erreur, mais une autre:
standard_init_linux.go:178: exec user process caused "exec format error"
devrait-il pas ./init.sh ?? – philipp
Merci, ça a aidé un peu. J'ai essayé './Init.sh' et il a donné la même erreur mais j'ai essayé'/init.sh' et cela donne 'permission denied'. – Ayushya
Le dockerfile définit 'WORKDIR/opt/solr', donc je suppose qu'il cherche' init.sh' dans ce chemin. – Grimmy