Issues with Migrate to Containers CLI

This document describes workarounds for some issues that you might encounter while working with the Migrate to Containers CLI.

Copy operation fails due to permission errors

To gain read access on the entire file system, the copy command is run using a superuser on the source machine. However, sometimes the copy operation still fails due to permission errors. This issue occurs because in some cases even the superuser doesn't have read access to some directories on the source machine.

In such cases, you might see an error message similar to the following message:

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

As a workaround for this issue, create a custom filter to exclude such directories from the copy operation.

For example, to exclude the /var/lib/lxcfs directory from the copy operation, add the following custom filter in the filters file:

- /var/lib/lxcfs

For more information, see Reduce the size of the copied file system.

Copy operation using gcloud fails to authenticate to the machine

If you use gcloud to run the copy command with sudo, then in some cases, the copy operation might fail to authenticate to the source machine. This issue occurs because gcloud is run with the same superuser that runs the Migrate to Containers CLI, and the superuser doesn't have the same credentials as the standard user.

In such cases, you might see an error message similar to the following message:

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

As a workaround for this issue, try running the copy command using gcloud without sudo.

The analyze command fails when using the Snap version of Docker

If you're using the Snap version of Docker, then the analyze command fails.

In such cases, you might see an error message similar to the following message:

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

As a workaround for this issue, install Docker again without using Snap. For more information, see Install Docker Engine.