É possível usar uma variável de ambiente como verificação de integridade do docker

user1990218

Eu tenho uma imagem personalizada do mysql. Quando executamos o contêiner, ele baixa um dump do mysql de nosso artifactory para carregar alguns dados. Tenho a seguinte verificação de integridade em meu comando docker run:

--health-cmd='mysql -u myusername -pMyPassword'

Mas o que eu quero fazer é definir a integridade do contêiner para íntegra quando os dados forem importados, o que geralmente leva cerca de 5 minutos. Uma ideia que tive é talvez definir uma variável de ambiente, mas, nesse caso, não saberia qual seria o cmd de saúde. Ou talvez haja uma maneira melhor de fazer isso?

Estou apenas começando com o docker, meu conhecimento é muito limitado.

b0gusb

Uma solução simples seria atualizar uma tabela especial (digamos status) quando o carregamento estiver concluído. Em seguida, substitua o comando health-check por um bashscript

#!/usr/bin/env bash
# the table status is updated when the load finishes
SQLSTMT="SELECT status FROM myDatabase.status WHERE status='done'"

# execute the SQL script and get the result
STATUS=`mysql -AN -e "${SQLSTMT}"`

# return exit code 0 (container healthy) if status is done,
# otherwise exit code 1 (container is not healthy)
[ "$STATUS" == 'done' ]

o health-cmdtorna-se:

--health-cmd='/path/to/script.sh'

Deve funcionar mesmo se você criar a tabela após o término do processo de carregamento.

Outra opção é criar um novo arquivo (mesmo vazio) quando o carregamento terminar. O comando de saúde testará a presença do arquivo:

--health-cmd="/usr/bin/test -f /path/to/file" 

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Python: é possível usar como padrão um argumento para uma variável do espaço de nome global?

É possível usar o docker como ambiente de desenvolvimento para ambiente padrão do mecanismo de aplicativo golang?

Como faço para usar a variável de ambiente Docker na matriz ENTRYPOINT?

Passe uma variável de ambiente para o Docker

Reinicie o docker com uma variável de ambiente diferente

Como fazer uma verificação de integridade do Docker com wget em vez de curl?

Como posso usar uma variável de ambiente em uma chave dentro do arquivo yaml

Como usar uma variável de ambiente de um docker-compose.yml em um Dockerfile?

Como modifico uma variável de ambiente do shell no swift?

Como usar uma variável de ambiente na seção do agente de um pipeline declarativo do Jenkins?

Como usar uma variável de ambiente para comprimento em uma substituição de string variável?

Como usar uma variável de ambiente para comprimento em uma substituição de string variável?

Como posso usar uma variável de ambiente do Windows em minha API .NET Core?

Como usar uma variável de ambiente no comando powershell

Como usar condicionalmente uma variável de ambiente de desenvolvimento ou produção

Como posso usar uma variável de ambiente no console MySQL

Como você passa uma variável de ambiente do WSL para o executável do Windows

Como você passa uma variável de ambiente do WSL para o executável do Windows

Nome do repositório como uma variável de ambiente de ação do GitHub?

Como passar uma variável de ambiente semelhante a json para a execução do docker

Como você passa uma variável de ambiente para o Solr em execução no Docker quando a variável de ambiente só existe dentro do contêiner?

Como usar a variável de ambiente local com o Vagrant?

Como usar a variável de ambiente local com o Vagrant?

Rails no Elastic Beanstalk, não é possível fazer uma verificação de integridade do balanceador de carga

Como posso usar a variável de ambiente no arquivo de configuração do hibernate?

Como usar uma solicitação HTTP HEAD como verificação de integridade do Marathon?

Não é possível executar uma verificação de integridade em uma imagem docker implantada no Pivotal Cloud Foundry

Como usar uma variável de ambiente como caminho de prefixo ao configurar o NGINX?

Como usar uma variável de ambiente no odoo.conf

TOP lista

  1. 1

    Obtendo apenas o número de uma String C #

  2. 2

    como acessar a conexão do banco de dados em visualizações no codeigniter 4

  3. 3

    Como redimensionar tabelas geradas pelo Stargazer no R Markdown?

  4. 4

    recuperar valores em uma linha de dataframes com base no valor em outro

  5. 5

    Firebase Storage Web: como fazer upload de um arquivo

  6. 6

    为什么在使用argc和argv时不会出现分段错误?

  7. 7

    Como agrupar objetos em uma lista em outras listas por atributo usando streams e Java 8?

  8. 8

    Qual é a diferença entre o tamanho do passo e a taxa de aprendizado no aprendizado de máquina?

  9. 9

    Por que definir a variável como uma string vazia não é necessária em meu código?

  10. 10

    Insert a value to hidden input Laravel Blade

  11. 11

    Configure o coletor de arquivos Serilog para usar um arquivo de log por execução do aplicativo

  12. 12

    Como ler arquivos yaml em laravel?

  13. 13

    Série Fibonacci usando programação dinâmica

  14. 14

    Como adicionar elementos a um array multidimensional em PHP?

  15. 15

    How do I set an IronPython ctypes c_char_p pointer to an absolute address that is not a valid memory address to read from?

  16. 16

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  17. 17

    Como faço para que um formulário no Access se torne uma janela pop-up?

  18. 18

    Como anexar um arquivo a um e-mail usando JavaMail

  19. 19

    Adicionar campos de texto dinâmicos por meio da seleção suspensa de componentes?

  20. 20

    如何使用SOM算法进行分类预测

  21. 21

    TypeError não capturado: não é possível atribuir a propriedade somente leitura

quentelabel

Arquivo