Problemas com a CLI Migrate to Containers

Este documento descreve soluções alternativas para alguns problemas que pode encontrar ao trabalhar com a CLI Migrate to Containers.

A operação de cópia falha devido a erros de autorização

Para obter acesso de leitura a todo o sistema de ficheiros, o comando copy é executado através de um superutilizador na máquina de origem. No entanto, por vezes, a operação de cópia continua a falhar devido a erros de autorização. Este problema ocorre porque, em alguns casos, mesmo o superutilizador não tem acesso de leitura a alguns diretórios na máquina de origem.

Nestes casos, pode ver uma mensagem de erro semelhante à seguinte:

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

Como solução alternativa para este problema, crie um filtro personalizado para excluir esses diretórios da operação de cópia.

Por exemplo, para excluir o diretório /var/lib/lxcfs da operação de cópia, adicione o seguinte filtro personalizado no ficheiro de filtros:

- /var/lib/lxcfs

Para mais informações, consulte o artigo Reduza o tamanho do sistema de ficheiros copiado.

A operação de cópia através de gcloud não consegue autenticar-se na máquina

Se usar gcloud para executar o comando copy com sudo, em alguns casos, a operação de cópia pode não conseguir autenticar-se na máquina de origem. Este problema ocorre porque o comando gcloud é executado com o mesmo superutilizador que executa a CLI Migrate to Containers, e o superutilizador não tem as mesmas credenciais que o utilizador padrão.

Nestes casos, pode ver uma mensagem de erro semelhante à seguinte:

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

Como solução alternativa para este problema, experimente executar o comando copy usando gcloud sem sudo.

O comando analyze falha quando usa a versão Snap do Docker

Se estiver a usar a versão Snap do Docker, o comando analyze falha.

Nestes casos, pode ver uma mensagem de erro semelhante à seguinte:

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

Como solução alternativa para este problema, instale novamente o Docker sem usar o Snap. Para mais informações, consulte o artigo Instale o Docker Engine.