./launcher reconstruir app para antigo 1.6 discourse não funcionando

A última peça do quebra-cabeça aqui para mim

Tenho meus fóruns antigos que acabei de mover para um novo local, mas ainda preciso de acesso. Editei o app.yml para alterar o nome de domínio e então executei ./launcher/ rebuild app --skip-prereqs para atualizá-lo, mas falha

Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
2.0.20230116-0051: Pulling from discourse/base
e01f084ee363: Already exists 
db2fb8a75c87: Already exists 
6e789f3cf3a6: Already exists 
afa15f3b4f49: Already exists 
bd9a8f354aab: Already exists 
7492e41ba139: Already exists 
17620c643046: Already exists 
24a2215b994e: Already exists 
3119b33deb35: Already exists 
32a8b7f7c0e8: Already exists 
2dbcf46b2450: Already exists 
bdc228d4887d: Already exists 
914f28af582f: Already exists 
4a67c541b202: Already exists 
d3fc17f1b671: Already exists 
77b3d250e54b: Already exists 
9329aa462aa8: Already exists 
daeee236a97d: Already exists 
b7746b7c02a0: Already exists 
5c28ac2537d4: Already exists 
56d3ef9b7e39: Already exists 
3bb00ba1ec5a: Already exists 
1f758f6d6132: Already exists 
374c5f9048f9: Already exists 
0259a5d2f899: Already exists 
3ad74725ef87: Already exists 
f61c04c40065: Already exists 
1917d29aeb87: Already exists 
6bf5a4e9b5be: Already exists 
0f99e9c433c1: Already exists 
5c757ebc11e3: Already exists 
eb1d61649fc0: Already exists 
b3fce4a2403d: Already exists 
2252a5634a08: Already exists 
3b67775f0e8d: Already exists 
fb7e87c0cabf: Already exists 
f0ba17f026a5: Already exists 
aa579fdb2c50: Already exists 
9b282f6a881a: Already exists 
e60b39d46409: Already exists 
4e9e640a98df: Already exists 
0d2ba21fdd7e: Already exists 
5871f9f51cef: Already exists 
2a25ca72ae61: Already exists 
a6b1f035e2fa: Already exists 
4f13760fda63: Already exists 
856119d0afd5: Already exists 
0d289e5416ba: Already exists 
7ee9fa0f4507: Already exists 
aa6751fe4791: Already exists 
a586d833efb5: Already exists 
769ebf485619: Already exists 
701cfc339927: Already exists 
Digest: sha256:xxx
Status: Image is up to date for discourse/base:2.0.20230116-0051
/usr/local/lib/ruby/gems/3.1.0/lib/pups.rb
/usr/local/bin/pups --stdin
flag provided but not defined: --shm-size
See '/usr/bin/docker run --help'.
cat: cids/app_bootstrap.cid: No such file or directory
bootstrap failed with exit code 2
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Container name cannot be empty

DISCOURSE DOCTOR Tue Jan 24 13:46:45 GMT 2023
OS: Linux xxxx01 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forumsold.xxxxx.com
SMTP_ADDRESS=smtp.xxxxx.com # (mandatory)
DEVELOPER_EMAILS=xxxxxx
SMTP_PASSWORD=xxxxx # (optional)
SMTP_PORT=25 # (optional)
SMTP_USER_NAME=xxxxx # (optional)
LETSENCRYPT_ACCOUNT_EMAIL=

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 1.7.0, build 0baf609

DOCKER PROCESSES (docker ps -a)

CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                      PORTS               NAMES
456040e68bec        local_discourse/app   “/sbin/boot”        6 years ago         Exited (5) 52 minutes ago                       app                 
91834fc0d913        hello-world           “/hello”            7 years ago         Exited (0) 7 years ago                          ecstatic_poitras    

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
ERROR: Docker version 1.7.0 not supported, please upgrade to at least 17.03.1, or recommended 17.06.2
==================== END REBUILD LOG ====================
Failed to rebuild app.

Checking your domain name . . .

Connection to xxxx.xxxxxx.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 
ERROR: Docker version 1.7.0 not supported, please upgrade to at least 17.03.1, or recommended 17.06.2
Failed to restart the container.

==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-solved.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at xxxx.xxxx.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
RAM (MB): 4048

            total       used       free     shared    buffers     cached
Mem:          3953       2058       1894          0         13       1811
-/+ buffers/cache:        233       3719
Swap:         2047        134       1913

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        79G   66G  9.5G  88% /

==================== DISK INFORMATION ====================

WARNING: GPT (GUID Partition Table) detected on '/dev/vda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/vda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders, total 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System
/dev/vda1               1   167772159    83886079+  ee  GPT

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [xxxxxx]: n
Mail test skipped.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================

Se você moveu toda a instalação, tentou apenas iniciar o contêiner antes de tentar uma atualização?

Se você tem um backup, por que não restaurá-lo em uma instalação nova?

Você está tentando reconstruir a partir da 1.6, o que deve funcionar, mas dá muito mais dor de cabeça.

Por que pular os pré-requisitos? Como você está reconstruindo, isso não pula a atualização, apenas as verificações, o que o poupa de mensagens de erro mais difíceis de solucionar.

Você pode atualizar o docker enquanto está nisso?

1 curtida

Eu já realizei a atualização para a 3.1, agora está funcionando bem.
Estou tentando colocar os fóruns antigos - que não foram tocados - online novamente para desenvolvimento.

Estou pulando os pré-requisitos porque não consigo usar o comando de reconstrução do launcher sem isso - docker rodando v1.7 e v1.8 necessários - mas talvez este seja o problema, então tentarei atualizá-lo agora.
Estou um pouco confuso porque não atualizei esses fóruns, então não entendo por que a reconstrução não está funcionando, já que não alterei nenhuma dependência, etc.

A única coisa que mudei foi o app.yml para atualizar o nome do host e tentei executar a reconstrução, que não funciona sem pular o pré-requisito.

O launcher e a imagem Docker mais recentes não são compatíveis com o Discourse 1.6. Você precisará fazer checkout de uma versão mais antiga do discourse_docker. Algo como git checkout 2ec550f pode funcionar…

1 curtida

É uma boa aposta que seu sistema operacional também esteja obsoleto, mas, em qualquer caso, eu recomendaria que você fizesse um backup, criasse uma nova instalação em uma nova VM e restaurasse o backup para a nova. Isso também economizará algumas etapas necessárias para Alterar o nome de domínio ou renomear seu Discourse.

não consigo mais fazer isso, pois não consigo reiniciar o aplicativo.

Se você tiver um backup da pasta antiga, poderá sempre restaurá-lo e tentar iniciá-lo.
A questão é que você atualizou a imagem base do Discourse.

Então eu usaria rsync no diretório /var/discourse/shared para o novo servidor.

isso funcionará se eu usar uma versão mais recente do Discourse no novo servidor?

1 curtida

Por que não nos diz o resultado que você está procurando aqui.

Sua instância antiga está atualmente em 1.6 - mas seu título sugere que você quer executar uma reconstrução, que também a atualizará - isso está correto? Se sim, então sim, restaurar para uma nova instalação será menos doloroso.

Se você está apenas procurando iniciar a instância 1.6 em vez de atualizar, o conselho será diferente. Sem a alteração do nome do host incluída, você normalmente apenas copiaria o conteúdo de /var/discourse entre os servidores. Desde que a máquina de destino tenha o docker instalado, ela pode ser iniciada usando ./launcher start.

1 curtida

Eu só quero acesso aos fóruns antigos, pois havia algumas postagens que não foram transferidas para a nova instalação (backup ligeiramente desatualizado).

Eu queria notificar esses usuários, mas não consigo colocar a versão 1.6 de volta em funcionamento - eu não queria atualizá-la, mas não importa se ela for atualizada, eu só preciso de acesso, é tudo.

o que eu faço se houver uma alteração no nome do host?

Sim. Deve funcionar.

1 curtida