Probleme mit der Migrate to Containers-Befehlszeile

In diesem Dokument werden Umgehungen für einige Probleme beschrieben, die bei der Arbeit mit Migrate to Containers-Befehlszeile auftreten können.

Kopiervorgang schlägt aufgrund von Berechtigungsfehlern fehl

Um Lesezugriff auf das gesamte Dateisystem zu erhalten, wird der Befehl copy mit einem Superuser auf dem Quellcomputer ausgeführt. Gelegentlich schlägt der Kopiervorgang jedoch aufgrund von Berechtigungsfehlern weiterhin fehl. Dieses Problem tritt auf, weil in einigen Fällen sogar der Superuser keinen Lesezugriff auf einige Verzeichnisse auf dem Quellcomputer hat.

In solchen Fällen wird möglicherweise eine Fehlermeldung wie die folgende angezeigt:

E   rsync   rsync: send_files failed to open "/var/lib/lxcfs/cgroup/blkio/blkio.reset_stats": Permission denied (13)
...
E   rsync   rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [generator=3.2.7]
Error: failed to copy fs from GCP VM "petclinic-springboot": failed copying vm to "/tmp/copy-1411243774": exit status 23

Als Behelfslösung für dieses Problem erstellen Sie einen benutzerdefinierten Filter, um solche Verzeichnisse vom Kopiervorgang auszuschließen.

Wenn Sie beispielsweise das Verzeichnis /var/lib/lxcfs aus dem Kopiervorgang ausschließen möchten, fügen Sie den folgenden benutzerdefinierten Filter in der Filterdatei hinzu:

- /var/lib/lxcfs

Weitere Informationen finden Sie unter Größe des kopierten Dateisystems reduzieren.

Der Kopiervorgang mit gcloud kann nicht beim Computer authentifiziert werden

Wenn Sie gcloud verwenden, um den copy-Befehl mit sudo auszuführen, kann es sein, dass der Kopiervorgang bei der Quellmaschine nicht authentifiziert wird. Dieses Problem tritt auf, weil gcloud mit demselben Superuser ausgeführt wird, der auch die Migrate to Containers-Befehlszeile ausführt, und der Superuser nicht dieselben Anmeldedaten wie der Standardnutzer hat.

In solchen Fällen wird möglicherweise eine Fehlermeldung wie die folgende angezeigt:

E ssh init ERROR: (gcloud.compute.ssh) There was a problem refreshing your current auth tokens: ('Failed to retrieve TOKEN from the Google Compute Engine metadata service. Status: 404 Response:\nb\'"No service account scopes specified."\'', <google.auth.transport.requests._Response object at 0x7fecf5c75550>)
E ssh init Please run:
E ssh init
E ssh init  $ gcloud auth login
E ssh init
E ssh init to obtain new credentials.
E ssh init
E ssh init If you have already logged in with a different account:
E ssh init
E ssh init    $ gcloud config set account ACCOUNT
E ssh init
E ssh init to select an already authenticated account to use.
Error: failed to initiate a connection with GCP VM "tomcat-server": exit status 1

Als Behelfslösung können Sie den Befehl copy mit gcloud ohne sudo ausführen.

Der Befehl analyze schlägt fehl, wenn die Snap-Version von Docker verwendet wird

Wenn Sie die Snap-Version von Docker verwenden, schlägt der Befehl analyze fehl.

In solchen Fällen wird möglicherweise eine Fehlermeldung wie die folgende angezeigt:

I       Unpacking file system...
I       Running analysis...
Error: running analysis failed: failed to run container: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: PATH

Als Behelfslösung für dieses Problem installieren Sie Docker noch einmal ohne Snap. Weitere Informationen finden Sie unter Docker Engine installieren.