2017-03-09 2 views
0

im Grunde versuche ich, mit folgenden Setup und Schritte in win7 mit Docker swift zu lernen:Swift Build Faild aufgrund "Datenbank ist gesperrt" in Docker Contianer?

läuft

1) physische Maschine auf win7

2) Docker Toolbox 1.12.5 Fenster Version installiert in win7

3) öffnen "Docker Quickstart-Terminal", die eine Konsole ist MINGW64

4) in MINGW64 Konsole ran "Andockfensters Pull SWIFT" einem geschicktes Bild Andockfensters

5) creat ziehen e Container mit "docker run -it --hostname = wert --privileged = true --net = host -v // d/dev/tools/docker/swift: // swift: z --name swiftfun 24cc712c0763/bin/bash ", was eigentlich das Volume-Mapping nicht funktioniert. Ich kann nicht Datei in Ordner meiner win7 Host

swift Version erstellen ist:

[email protected]:/swift/PerfectTemplate/.build# swift -version 
Swift version 3.0.2 (swift-3.0.2-RELEASE) 
Target: x86_64-unknown-linux-gnu 

Linux-Container ist:

[email protected]:/swift/PerfectTemplate/.build# cat /etc/*release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=16.04 
DISTRIB_CODENAME=xenial 
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS" 
NAME="Ubuntu" 
VERSION="16.04.2 LTS (Xenial Xerus)" 
ID=ubuntu 
ID_LIKE=debian 
PRETTY_NAME="Ubuntu 16.04.2 LTS" 
VERSION_ID="16.04" 
HOME_URL="http://www.ubuntu.com/" 
SUPPORT_URL="http://help.ubuntu.com/" 
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 
VERSION_CODENAME=xenial 
UBUNTU_CODENAME=xenial 

6) dann lief diese im Container "-t cifs Halterung //10.xxxxx/D$/dev/tools/docker/swift/ swift -o username = myusername, password = meinpasswort, noperm ", funktioniert diese Zeit und ich kann Dateien in meinem Win7-Ordner sehen und kann Dateien schreiben win7.

7) Gehe zum Ordner "/ swift" im Container und ziehe den Code von git wie in diesem Link gezeigt http://perfect.org/docs/gettingStarted.html. Ich kann

8) in Container in win7 Ordner erstellt Dateien/Ordner sehen, gehen Sie auf den Ordner "PerfectTemplate" und lief zügig zu bauen, es scheiterte mit folgende Meldung:

...

Cloning https://github.com/PerfectlySoft/Perfect-Thread.git 
HEAD is now at aee3b32 Cleanup 
Resolved version: 2.0.9 
<unknown>:0: error: unable to attach DB: unable to initialize database (database 
is locked) 
error: exit(1): /usr/bin/swift-build-tool -f /swift/PerfectTemplate/.build/debug 
.yaml 

...

gibt es eine Datei build.db in meinem win7 Ordner erstellt D:\dev\tools\docker\swift\PerfectTemplate\.build\build.db
und die Dateigröße bleibt 0 Byte

finden Sie ausführliche Informationen vom Gebäude:

/usr/bin/swiftc --driver-mode=swift -I /usr/lib/swift/pm -L /usr/lib/swift/pm -l 
PackageDescription /swift/PerfectTemplate/Packages/PerfectThread-2.0.9/Package.s 
wift -fileno 4 
/usr/bin/swift-build-tool -f /swift/PerfectTemplate/.build/debug.yaml -v 
<unknown>:0: error: unable to attach DB: unable to initialize database (database 
is locked) 
error: exit(1): /usr/bin/swift-build-tool -f /swift/PerfectTemplate/.build/debug 
.yaml -v 

wenn ich alles Linux lokalen Ordner verwenden für Bauordnung dann fein .die Größe build.db Änderungen arbeitet. hat es irgendetwas mit dem mounted drive zu tun, das // ip/drive verwendet? Wie löse ich? Danke

Antwort

0

OK, es scheint, dass sqlite nicht toleriert, um Windows-Ordner in Containern zugeordnet. Ich habe versucht, Mappen sowohl mit // ip/folder approach als auch mit virtualbox shared folder approach zu erstellen. keiner von ihnen funktioniert.und so scheint es etwas mit winLockFile zu tun hat, überprüfen Sie bitte folgenden Link:

http://sqlite.1065341.n5.nabble.com/SQLite3-database-on-windows-network-drive-and-unreliable-connection-td75875.html

https://www.sqlite.org/whentouse.html

Ich habe auch Quellcode schnellen Paketmanager, es scheint, gibt es keine Möglichkeit, Wahlen des Hinzufügens SWIFT- Build-Tool als Teil des Befehls "swift build"