我修改了docker-compose.yml
文件,如https://hub.docker.com/_/solr/上給出的那樣,通過添加volumes
配置和更改entrypoint
。修改後的文件如下:使用docker-composose中的入口點運行自定義腳本
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
我需要在入口點啓動之前運行這個'init.sh'來準備我的容器內的文件。
,但我得到以下錯誤:
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"
早些時候,我發現了大約從here在Neo4j的官方圖片掛鉤。我還可以在這裏使用類似的東西嗎?
更新1:從下面的評論,我意識到,dockerfile設置WORKDIR /opt/solr
由於其中executable file not found in $PATH
。所以我通過使用/init.sh
提供入口點的絕對路徑來進行測試。但是,這也給了錯誤,但不同的一個:
standard_init_linux.go:178: exec user process caused "exec format error"
它不應該是./init.sh? – philipp
謝謝,這有所幫助。我嘗試了'./init.sh',它給出了同樣的錯誤,但是我嘗試了'/ init.sh',並且給出了'permission denied'權限。 – Ayushya
dockerfile設置'WORKDIR/opt/solr',所以我猜它在那個路徑中查找'init.sh'。 – Grimmy