O reinício do contêiner erra / executa até que eu exec bash

1

Estou com um erro estranho em uma imagem do docker personalizado. O sistema host é o centos 7.4 com o Docker 17.12.0-ce, enquanto a imagem é baseada no centos 7.2 com o apache e tem um aplicativo personalizado rodando no cgi. Quando um novo contêiner é criado, ele funciona OK, mas quando o contêiner é reiniciado (a partir do reinício = sempre sinalizar ou manualmente), ele continua reiniciando o bin apache no final do script executado pelo CMD.

Olhando para os logs do apache (que estão em um volume), ele mostra essas linhas a cada reinicialização do apache:

[auth_digest:error] [pid 19] (17)File exists: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.19
[auth_digest:error] [pid 19] (17)File exists: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled
[:emerg] [pid 19] AH00020: Configuration Failed, exiting

Pesquisando os códigos de erro, parece um problema com a pasta / run / httpd, então decido executar um terminal bash para ver se há algum problema com ele e, no exato momento em que eu bato no contêiner, os erros param , Eu recebo estas linhas:

[auth_digest:notice] [pid 34] AH01757: generating secret for digest authentication ...
[lbmethod_heartbeat:notice] [pid 34] AH02282: No slotmem from mod_heartmonitor
[core:warn] [pid 34] AH00098: pid file /run/httpd/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[mpm_prefork:notice] [pid 34] AH00163: Apache/2.4.6 (CentOS) mod_perl/2.0.10 Perl/v5.16.3 configured -- resuming normal operations
[core:notice] [pid 34] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

e o apache começa a responder como nada aconteceu.

Eu testei esse comportamento várias vezes, não depende do tempo (pode ser de 5 minutos ou 1 hora com as mensagens de erro, eles vão parar assim que eu fizer login).

Então, minhas perguntas são:

  1. O que meu gatilho de login bash pode resolver o problema?
  2. Como posso replicá-lo no script executado pelo CMD?

Atenciosamente.

PS: desculpe se isso foi perguntado antes, eu estou tendo dificuldades para procurar por um problema com o docker e "/ run" porque o google ignora a barra.

    
por Juan Clavero 05.01.2018 / 10:34

1 resposta

0

Então, por tentativa e erro, descobri uma maneira de aparentemente resolver esse problema, mas estou completamente perdida por que isso acontece.

Eu adicionei no início do script executado pelo CMD uma instrução para excluir o conteúdo de / run / httpd:

1 #!/bin/bash
2
3 rm -rf /run/httpd/*
4
5 [... continue execution as before ...]

Parece não haver nenhuma desvantagem dessa medida, então vou cumprir.

Ainda serei mais do que feliz se alguém puder fornecer uma explicação sobre esse comportamento.

Atenciosamente

    
por 05.01.2018 / 13:02