Bir Stardog 3.1.3 topluluk sürümü sunucusunu dockerize etmeye çalışıyorum. Kapsayıcı, bir lisans dosyası yerine bir dizin gördüğü için başlatılamıyor. Kayıt için, Windows'dayım. Bunlar İzlediğim adımlar şunlardır:Docker tarafından kopyalanan dosya bir dizin olarak görüntülendi
veri kabı
docker create -v /data/stardog:/data/stardog --name stardog_data busybox /bin/true
Kopya veri kaba yerel lisans anahtarı oluşturun (lisans olarak aşağıda belirtilen Dockerfile yapmadığım belirli bir ortamdır)
docker cp .\stardog\stardog-license-key.bin stardog_data:/stardog-license-key.bin
docker build -t me/stardog .
FROM java:openjdk-8-jdk
ENV STARDOG_VER stardog-3.1.3
ENV STARDOG_HOME /data/stardog
COPY ${LOCAL_PATH}/${STARDOG_VER}.zip/
RUN unzip ${STARDOG_VER}.zip
WORKDIR /${STARDOG_VER}
CMD rm $STARDOG_HOME/system.lock || true && bin/stardog-admin server start && (tail -f $STARDOG_HOME/stardog.log &) && while (pidof java > /dev/null); do sleep 1; done
aşağıdaki Dockerfile dayalı bir görüntü oluşturmaBen
docker ps -a
yürütmek, ben konteyner birkaç saniye sonra durdurulur görüyoruz bir Stardog kabı
docker run -d -p 5820:5820 --volumes-from stardog_data --name stardog me/stardog
çalıştırın: Ben docker logs stardog
ile günlüklerini kontrol zaman, bu alıyorum
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9559b22473e1 me/stardog "/bin/sh -c 'rm $STAR" 26 minutes ago Exited (1) 26 minutes ago stardog
2b929329e35e busybox "/bin/true" 32 minutes ago Created stardog_data
:
com.clarkparsia.license.InvalidLicenseException: java.io.FileNotFoundException: /data/stardog/stardog-license-key.bin (Is a directory)
at com.clarkparsia.license.LicenseValidator.validate(LicenseValidator.java:157)
at com.complexible.stardog.StardogLicense.findLicense(StardogLicense.java:127)
at com.complexible.stardog.StardogLicense.<init>(StardogLicense.java:70)
at com.complexible.stardog.Stardog.<init>(Stardog.java:158)
at com.complexible.stardog.Stardog.initialize(Stardog.java:263)
at com.complexible.stardog.Stardog.initialize(Stardog.java:254)
at com.complexible.stardog.Stardog.buildServer(Stardog.java:247)
at com.complexible.stardog.cli.impl.ServerStart.call(ServerStart.java:144)
at com.complexible.stardog.cli.impl.ServerStart.call(ServerStart.java:47)
at com.complexible.stardog.cli.CLIBase.execute(CLIBase.java:54)
at com.complexible.stardog.cli.admin.CLI.main(CLI.java:194)
Caused by: java.io.FileNotFoundException: /data/stardog/stardog-license-key.bin (Is a directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at com.clarkparsia.license.LicenseValidator.validate(LicenseValidator.java:113)
... 10 more
Your Stardog license is invalid. Please contact [email protected] for information on obtaining a new license.
Lisans dosyasının bir dizin olduğu düşünülür. Neyi yanlış yapıyorum? Aşağıdaki Docker sürümünü kullanıyorum
:
Client:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 21:49:11 2016
OS/Arch: windows/amd64
Server:
Version: 1.10.3
API version: 1.22
Go version: go1.5.3
Git commit: 20f81dd
Built: Thu Mar 10 21:49:11 2016
OS/Arch: linux/amd64
https://docs.docker.com/engine/reference/commandline/cp/ de doc örneğin 'SRC_PATH DEST_PATH olduğunu varolmayan bir dizin DEST_PATH belirtir, hedef bir dizin haline çeşitli durumları gösterir Bir dizin olarak oluşturuldu ve kaynak dizininin içeriği bu dizine kopyalanır 'Kaynakta tam yolu koymalısınız ve – user2915097
imi Tam yollarla ilgili bir öneri göremiyorum, ancak aşağıdakileri başarılı olmadan denedim (aynı hata): 'C: \ Kullanıcılar \ xxx \ stardog \ stardog-lisans-key.bin stardog_data:/data/stardog/stardog-license-key.bin'. Ayrıca, AFAIK Ben şu senaryoda yaşıyorum: 'SRC_PATH bir dosya belirtir, DEST_PATH yok, dosya DEST_PATH''de oluşturulan bir dosyaya kaydedilir. Herhangi bir fikir? – tstorms
docker cp doc, 'cp komutu, bu dizinlerdeki Unix cp -a komutu gibi davranır, eğer mümkünse korunan izinlerle yinelemeli olarak kopyalanır ' – user2915097