2016-03-29 16 views
2

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 
+0

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

+0

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

+0

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

cevap

0

Bu Windows ile ilgili bir sorun gibi görünüyor. Bu aynı adımları yerel bir Ubuntu (14.04) makinesinde denedim ve beklendiği gibi çalışıyor. Bunu bir bug olarak gönderdim ve umarım bu da yakında çözülür.

İlgili konular