Ambiente NodeJs com NPM, Yarn, Nodemon, PM2 e um drive de conexão com base de dados Oracle.
10K+
Imagem para criação de container de serviço em NodeJs.
1 - Crie uma pasta que será o local onde ficará o projeto
mkdir <meu-projeto>
2 - Logo em seguide acesse a pasta criada
cd <meu-projeto>
3 - Por fim, crie um container para executar seu projeto.
docker container run -it --name <nome-container> --net host -v $PWD:/usr/app ygoamaral/node:latest bash
Obs: Para mais segurança, especifique uma porta e remova o parâmetro '--net host'.
4 - A partir de agora, você estará em um ambiente Docker com Nodejs. Caso queira, crie seu projeto node com o comando abaixo:
npm init
1 - Inicie o container
docker container start <nome-container>
2 - Acesse o projeto por esse container
docker exec -it <nome-container> bash
Crie o arquivo .env, que terá variáveis que poderam ser utilizadas para configurar o container do seu projeto. Logo em seguida, crie um arquivo que será responsável por iniciar o container com base nas configurações do .env (Dica de nome do arquivo: docker-service.sh). Deixe esses arquivos na raiz do projeto:
PORTA=3333
SEGUNDO_PLANO=sim
DOCKER_IMAGEM=ygoamaral/node:latest
INICIAR_COM_SO=nao
DOCKER_CONTAINER=meu-servico-node
#!/bin/bash
# Capturando variavel de ambiente do arquivo .env
eval "$(grep ^PORTA= .env)"
eval "$(grep ^SEGUNDO_PLANO= .env)"
eval "$(grep ^DOCKER_IMAGEM= .env)"
eval "$(grep ^INICIAR_COM_SO= .env)"
eval "$(grep ^DOCKER_CONTAINER= .env)"
if [ "$SEGUNDO_PLANO" == "sim" ]; then
PARAMETRO_SEGUNDO_PLANO=" -d "
PARAMETRO_COMANDO=" npm start " # adicionar comando de inicializacao no package.json na propriedade scripts.start
else
PARAMETRO_COMANDO=" bash "
fi
PARAMETRO_INICIAR_COM_SO=$([ "$INICIAR_COM_SO" == "sim" ] && echo " --restart=always ")
excluir_container(){
docker container rm $DOCKER_CONTAINER -f
}
iniciar_container(){
# Criando o container
docker container run \
-it \
$PARAMETRO_SEGUNDO_PLANO \
--name $DOCKER_CONTAINER \
$PARAMETRO_INICIAR_COM_SO \
-p $PORTA:$PORTA \
-v $PWD:/usr/app \
$DOCKER_IMAGEM \
$PARAMETRO_COMANDO
}
if [ ! "$(docker ps -aq -f name=^$DOCKER_CONTAINER$)" ]; then
iniciar_container
else
excluir_container && iniciar_container
fi
PORTA=3333
SEGUNDO_PLANO=nao
DOCKER_IMAGEM=ygoamaral/node:latest
INICIAR_COM_SO=nao
DOCKER_CONTAINER=meu-servico-node
PORTA=3333
SEGUNDO_PLANO=sim
DOCKER_IMAGEM=ygoamaral/node:latest
INICIAR_COM_SO=sim
DOCKER_CONTAINER=meu-servico-node
./docker-service.sh
Obs1: a variável 'SEGUNDO_PLANO' pode ser usada para executar o container em background (com o valor 'sim') ou acessando o 'bash' do container (com o valor 'nao').
Obs2: a variável 'INICIAR_COM_SO' expecifica se o container vai iniciar junto com o sistema operacional ou não, com os respectivos valores, 'sim' ou 'nao'.
Content type
Image
Digest
sha256:18bd70b1c…
Size
572.4 MB
Last updated
3 months ago
docker pull ygoamaral/node