Problemas con la CLI de Migrate to Containers

En este documento se describen soluciones alternativas para algunos problemas que pueden surgir al trabajar con la CLI de Migrate to Containers.

No se puede copiar debido a errores de permisos

Para obtener acceso de lectura a todo el sistema de archivos, el comando copy se ejecuta con un superusuario en la máquina de origen. Sin embargo, a veces la operación de copia sigue fallando debido a errores de permisos. Este problema se produce porque, en algunos casos, ni siquiera el superusuario tiene acceso de lectura a algunos directorios de la máquina de origen.

En estos casos, es posible que veas un mensaje de error similar al siguiente:

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

Para solucionar este problema, cree un filtro personalizado para excluir esos directorios de la operación de copia.

Por ejemplo, para excluir el directorio /var/lib/lxcfs de la operación de copia, añade el siguiente filtro personalizado al archivo de filtros:

- /var/lib/lxcfs

Para obtener más información, consulta Reducir el tamaño del sistema de archivos copiado.

No se puede autenticar en el equipo al copiar con gcloud

Si usas gcloud para ejecutar el comando copy con sudo, en algunos casos, es posible que la operación de copia no pueda autenticarse en la máquina de origen. Este problema se produce porque gcloud se ejecuta con el mismo superusuario que ejecuta la CLI Migrate to Containers, y el superusuario no tiene las mismas credenciales que el usuario estándar.

En estos casos, es posible que veas un mensaje de error similar al siguiente:

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

Para solucionar este problema, prueba a ejecutar el comando copy con gcloud sin sudo.

El comando analyze falla al usar la versión Snap de Docker

Si usas la versión Snap de Docker, el comando analyze fallará.

En estos casos, es posible que veas un mensaje de error similar al siguiente:

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

Para solucionar este problema, vuelve a instalar Docker sin usar Snap. Para obtener más información, consulta Instalar Docker Engine.