mauro pereira

há 1 ano · 4 min. de leitura · ~100 ·

Blogging
>
Blog por mauro
>
Mongodb, Nodejs e Docker

Mongodb, Nodejs e Docker

A AWS web services nos dá uma gama muito grande de serviços onde pode-se apenas preocupar-se com o desenvolvimento e gestão do seu aplicativo, deixando as configurações de modo automático e fixando-se em outros pontos.

Neste tutorial vamos montar um ambiente sem uso do AWS RDS em uma máquina local com nodejs, mongodb e docker.

Pré-requisitos:

  • nodejs e npm instalados
  • docker e docker-compose instalados
  • conhecimento em linha de comando neste caso linux, mas pode ser o sistema que estiver usando
  • conhecimento em javascript
  • conhecimento em node e npm (node package manager) -
  • conhecimento básico de redes
  • conhecimento básico de banco de dados

Na linha de comando do seu computador onde queira ter seu workspace digite o seguinte comando:

  • npm init -

Siga as instruções e construa o esqueleto da sua aplicação node conforme imagem abaixo:

Atmdades © Terminal v 21dejul 1604 ©
= mauros@mauroslucios: ~/Documentos/node projects tutorial
mauros@nauroslucios: ENR TINY

This utility will walk you through creating a package. json file.
It only covers the most common items, and tries to guess sensible defaults.

   

       

 

tion on t (HUTT

See ‘npn help init for definitive document
PLCS Pe

 

 

hey do.

 

APE FELT]
on file.

rar jv
(P|

    
    
   

  

RRR TAY

   

torial nodejs, postgresql, pgadain e docke
RE CR BOR ST
command

 

nodes, docker, po
aurosluciosggnatl.con

(150)

write to /home/mauros/Docunentos/node project

CCIE)

 

MICU Fr ery

 

ortal nodejs, postgresql, pgadain e docker”,

 

 

“echo \"Error: no test specified\” 88 exit

 

ITEC

“author
RUTTEN

urosluclosggnatl.con”,
Rt

Vamos instalar as dependências node via npm:

  • npm install --save express mongoose
Atmdades ® coogle Chrome + 21deju 1630 ©

   

  

 

     

OR!
B mauros@mauroslucios: ~/Documentos/node_projects/tutorial Q CI]
LITT TEI ey PYLE PI PPT LITT TEI ey PYLE PI PPT LTTE TET I ey PYLE PP PP rT
mauros@naurosluctos:~/Docunentos/node_projects/tutorials npa install --save express mongoose
npn fotics created a lockfile as package-lock. json. You should commit this file.
rs EHP PEER

   

BCS CISTI
TTI)
added 85 packages from 185 contributors and audited 85 packages in 17.729%

 

11 packag
CT

 

+ are looking for funding
(LCRA TIEN EY

  

found 8 vulnerabilities

  

Ee version of npn available! 8

 

LT SPE UR Pr)

mauros@naurosluctos :~/Docunentos /node_projects/tutor tals

Para fazermos o “live reload da aplicação” iremos usar o nodemon - useo o comando abaixo para instalar sua dependência:

  • npm install --save-dev nodemon
Atmdades SB CUTIE 21dejud 1635 © OR!
(2 mauros@mauroslucios: ~/Documentos/node_projects/tutorial a CI]
mauros@mauroslucios: ~/Documentos/node pr... mauros@mauroslucios: ~/Documentos/node pr... mauros@mauroslucios: ~/Documentos/node pr... -

 

ETL ELE Pr CRT RUPTURE TI Br EE LET

 

BECCEET PR T IY
BCL TOY Ee

 

install /home/mauros/Documentos/node projects/
ASSENT)

CO VICE LEE EYEE ETE

 

> https: //opencollective.con/nodenon/donate

 

 

npn SKIPPING OPTIONAL DEPENDENCY: fseventsg-2.3.2 (node modules/chokidar/node modules/fsevents)
pre SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fseventsgz.3.2: wanted {0s™: darwin”, arch
PTT RR

[ral RCT RR Tr rr IPL

+ nodenong?.0.19
added 32 packages from 28 contributors and audited 118 packages in 6.7055

 

any") (current: {Tosi li

 

 

14 packages are looking for funding
run npn fund for details

found © vulnerabilities

[ITIP EP A pr ves s 8

Vamos criar um ponto de start para o nodemon no package.json para iniciar a aplicação com o mesmo no ambiente de dev, abra a aplicação no seu editor preferido. No meu caso uso visual studio code.

  • “start”: “nodemon index.js”

Seu arquivo package.json deverá estar desta forma depois da alteração:

Atmdades RE YT 21dejul 1640 © PACER IR

package. json - tutorial - Visual Studio Code CI

 

[8] prerTrey J as s0bee 4 : 3 BT : 2 LJ

 

 

 

  

 

  

   

pra .
12 i
L 4 ae
5 :
+) i” : i
@ ;
ESTRUTURA DO COICO :
[Ere 3
re
7)» cocxsamuces
J
Lr
he SUCCESTED DOCKER WUB IMAGES.
Xx ®oo Ln12.Col 14 Bsomor? UTI Li 13 JSON RColwe & Premera (2

Agora iremos criar uma rota na aplicação usando express, mas para isto temos de criar um arquivo de entrada da nossa aplicação chamdo “index.js” na raiz do projeto:

  • index.js

Este arquivo index.js deverá ter o sequinte conteúdo abaixo:

const express = require('express');

const app = express();

const PORT = 3000;

app.get('/',(req,res) =>{

 res.json({mesage: ‘Hello API com nodejs, mongodb e docker’});

})

app.listen(PORT,()=>{

console.log(`app running on url http://localhost:${PORT}`);

})

Atmdades RE CET EE J REEIINY Sl

 

index.js - tutorial - Visual Studio Code CI

 

 

     

     

RR]
to load the JavaScript Standard Sty LRTI IPN
ojects/tutor 1al/datatase/ connection |
LSTRUTURA DO COICO To use JavaScr: tandard Style please instal avasc € by
[Epes in the workspace fol pa
NEAT pe NR TR to reopen the workspace after installing

       

[ETT

JavaScript Standard Style
[Tere

 

ye

 

Alternatively y

     

re [RIP in
PR TLE prey
Er) [EER PTR TP vse aTi Pore YN JES PHT E IRVIN TEN IY SV

Agora já temos uma aplicação funcional com 1(um) endpoint e para testar vamos executar o seguinte comando na sua CLI:

  • npm run start (irá chamar o nodemon para fazer o live reload da aplicação)

Verás uma tela igual a abaixo:

Sl UN NCR JONSON

 

2
EH
3
3
2

@ Google Chrome »

EITC TIT eres

 

ERT N
BEC EETR UT

   
  

 

13

SETI
SETI

app running on url hi

  

 

Document

ZAC

ier

 

LITT TEI ey PYLE PI PPT

t /hone/mauros/Docunentos/node project

 

RETTRTEE I

mauros@mauroslucios: ~/Documentos/node projects tutorial

 

LITT TEI ey PYLE PI PPT LITT LEI PPR PP PPT I
ITEP T Rr ET

 

 

(TITY

Vá no seu browser até http://localhost:3000 e verás a tela abaixo:

<r ow Qh »O@

8 fihos 88 Mauroslucios 88 cursos BB carros BB acoes » BB Outros favontos

 

€ 2 C 00 © localhost 30
# Bookmarks (7 PostgreSQLT.. (W) Mysql & Red MatFRee . Tg passwordReco

   

 

   

t
“message” Hello APD como
»
1 // 28220721165
2 /7 http://localhost :3060/
5 “message”: "Hello API com nodes, mongodd e docker”

Execute “CTRL+C” no seu terminal para finalizar sua aplicação.

Com sua aplicação funcional agora é hora de inserir o docker no projeto.

Neste momento temos o projeto inicial em nodejs criado e vamos adicionar o docker na aplicação. Para isto iremos criar 2(dois) arquivos na raiz do projeto:

  • docker-compose.yml
  • Dockerfile (exatamente com este nome e sem extensão)

O conteúdo destes arquivos serão:

Dockerfile:

  • FROM node:16.14.0 
  • MAINTAINER mauroslucios
  • RUN mkdir -p /var/www/app/node_modules && chown -R node:node /var/www/app
  • WORKDIR /var/www/app
  • COPY package.json ./
  • RUN npm install
  • COPY . .
  • COPY --chown=node:node . .
  • USER node
  • EXPOSE 3000
  • CMD ["node","app.js"] ENTRYPOINT ["npm","start"]
Atmdades RE YT 21dejul 1756 © PACER IR

Dockertile - tutorial - Visual Studio Code CI

  

 

[TET eee)
[EOP I)

oe
Ere

Se

 

 

ye

 

PPR
3 ai

 

I~ 2h

  

   

PTT ELT Te ps J
Xx @oMt In8Col27 fwpxord UTE IF Docketle @Colwve & OPeer oO

the document /h:

 

   

0jects/tutor tal

Nesta etapa temos que fazer o build da aplicação para gerar a imagem que será usada no docker-compose.yml para criar o container do nodejs, use o comando abaixo, mas troque pelo seu usuário(mauroslucios) dockerhub.

  • docker build -t mauroslucios/tutorial:1.0 .    
  • docker build -t <seu-usuario-dockerhub>/tutorial:1.0 .

O comando acima deverá produzir a seguinte saída abaixo no terminal:

PUErETY @ Google Chrome » 21dejd 1700 ©

 

mauros@mauroslucios: ~/Documentos/node projects tutorial fo) EY

mauros@mauroslucios: ~/Documentos/node pr... ~  mauros@mauroslucios: ~/Documentos/node pr... LITT TEI ey PYLE PI PPT

 

TI a a)

 

Tas

   

node_projec
ETI] build context to Docker daemon 17.6248
tep 1/12 : FROM node:16.14.8

BR TIETEPEPPLEY
tep 2/12 : MAINTAINER mauroslucios

ortals docker build -t mauroslucios/tu

 

ortal:1.e .

> Using cache
BLT Eras)
tep 3/12 : RUN mkdir -p [var /www/app/node nodules 88 chown -R node:node [var /www/app
ERUAUT ITT)
BELTS
tep 4/12 : WORKDIR [var /www/app
ERUAUT ITT)
CCE
tep 5/12 : COPY package. json .
S BYTE
tep 6/12 : RUN npn in: n
> Running in 773e58100850

   

 

added 117 packages, and audited 118 packages in 11s

14 packag:

 

+ are looking for funding
CTS RETR TIP EY

found 8 vulnerabilities

 

Boose ER
eB

Removing intermediate container 773e58100850
BTL PETTY
tep 7/12 : COPY . .
BEILTTIT LLL)
Step 8/12 : COPY --chown=nod
BRITE TErIes
RYT RAR er

Ao final deverá aparecer a mensagem de sucesso do build conforme imagem abaixo:

  • Successfully tagged <seu-usuario-dockerhub>/tutorial:1.0
2
EH
3
3
2

[RET e Eg 21dejul 1704 © EA

 

x mauros@mauroslucios: ~/Documentos/node_projects/tutorial a a @

mauros@mauroslucios: ~/Documentos/node pr... ~  mauros@mauroslucios: ~/Documentos/node pr... LITT TEI ey PYLE PI PPT

 

Er RSET

 

, and audited 118 packages tn 11s

   

14 packages are looking for funding
CTS RETR TIP EY

 

 

found 8 vulnerabilities

 

LE PR TT PE
ER ELIS ELLIE)
BRITT
> 271263548090
Step 8/12 : COPY --chown=node:node .
BEIT TIER
Step 9/12 : USER node
> Running in 0522572¢292¢
Removing intermediate container 0522572¢292
> a6ce373995e7
Step 10/12 : EXPOSE 3000
EL ULUIG EIR GREETS ERLE RL)
Removing intermediate container doef184ff3fb
IN
FIR TV EIR ET PE TOP
> Running in 05091ca90243
Removing intermediate container 05091ca90243
TIRE IT
Step 12/12 : ENTRYPOINT [“npa”, sta
BE WES TPE Ir]
Removing intermediate container Sacc7bz3aedd
ECRCIILELELER
MISC TILER PET LE PE ES
LAL ATT EEE
maurosgnauroslucios:

 

container 773e58100850

 

   

Sl UN KC JONSON

 

   

utortal:l.e

 

Fre

     

PITT

Execute o comando abaixo para ver a imagem docker do nodejs criada:

  • docker images

Vamos criar a conexão com o banco de dados mongo. Crie uma pasta chamada database na raiz do seu projeto e nesta pasta crie um arquivo chamado: “connection.js” e adicione o conteúdo abaixo no mesmo. 

const mongoose = require('mongoose')

mongoose.connect('mongodb://mongodb:27017/apirest').then(()=>{    

console.log('Mongodb conectado...')

}).catch((err)=>{    

console.log('Houve um erro ao conectar: '+ err)

})

mongoose.Promise = global.Promise

module.exports = mongoose

Atmdades RE YT BETTREETIN PACER IR

 

connection.js - tutorial - Visual Studio Code

   

 

[rr Notas sobre a Vera: 1 69 package TE LR rr oe

   

  

 

      

- Ga Oe) EE
TICRErTRn: ect Ys
TC ET COR EC ETT YE.
Creu 9 module exports = rongoosdq
Freres
Javascript Standard Style’ command
fr op
Failed to load the Javascript (MERIT the document /home [RATT

 

ESTRUTURA DO COICO

 

[EOP I)
[EET
Ere

rp pet

      

ETI EY

[IRIN

   

Lal) PARTIR TIT e
PT TT EP TV CR t Stands
REET) [EE RETR rev TE TR Fi Pc PSII TITRE PARops Re ew Ter PEN I SNR RC §

No arquivo docker-compose.yml na raiz do projeto insira o conteúdo abaixo:

version: "3.7"

services:  

web:    

     image: mauroslucios/tutorial:1.0    

     ports:      

          - 3000:3000    

     volumes:      

          -  ./:/var/www/app   

      environment:

           NODE_ENV: development    

      depends_on:      

          -  db    

      links:      

         -  db      

db:    

       image: 'mongo'    

       container_name: mongodb    

       ports:     

           -  '27017:27017'    

       volumes:      - ./data/db:/data/db      

Atmdades ATE EIT

EAE LIE IREA TIN 1 EOL ER Bhd

docker-compose.yml - tutorial - Visual Studio Code CI

 

[TET eee)
[EOP I)

oe
Ere

Se

 

ye
re

 

[Rn perp vy
REET)

 

 

 

     

the document /h:

   

CET ramen

 

1n4ColY) ipo? UTES Li () Compose @Colwe & Preter wo (3

Agora é monento de rodar a aplicação em um container docker, para isto execute o comando abaixo:

  • docker-compose up (aqui não usei a flag -d para ver o resultado do log no console)

Verás uma tela parecida com a mesma abaixo:

[UNETEE SECTS 21dejul 1725 © PAR 0
© mauros@mauroslucios: ~/Documentos/node_projects/tutorial Q CI]
mauros@mauroslucios: ~/Documentos/node pr... «  mauros@mauroslucios: ~/Documentos/node pr... mauros@mauroslucios: ~/Documentos/node pr... Ns
I AER RR hode_projects/tutorials docker-compose up
Creating network “tutorial default” with the default driver
JETT Err ET
Creating tutorial web 1 ... dor
LE Attaching to mongodb, tutorial web 1
1
PO TS PAT TI J JPET TY
1 | > nodemon index. js “node” “app. js”
1
rt [RTE
1 on N
1 SETI
1 on] watching extensi
1 " RTPI Rr IY |
I GEST Gr PI SR TPT I VERE PT IE PRP IOT'E THT SS DRT RRR a LR CLEP PEST UPL PLE LIES PARE TICS TPT EN EL CI ELNY
P on”, attr=: {spec :{~inconingExternalClient™: {~ninWireversion™:0, “maxWireversion”:13}, incontngInternalClient™: {~ninWireversion™

       

      

slon:13}, outgoing: {“minWireversion™:0, “maxwireversion™:13},"sInternalClient~: true} }}

S {"t7:{"Sdate~:72022-07-21720:22:44.780+00:007},"s™: "1", Cc”: CONTROL™, ~1d~:23285, “ctx”:"-~,"msg”: Automatically disabling TLS
1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols ‘none’ "}
TTi{TSdate”:T2022-07-21T20:22:45.203400:007},7s":
EE a Rr

godh {"t7:{"Sdate’ 2022-07-21720:22:45.245400:007},757:717, “CcTiTNMETWORK™, “{d”:4648601, “ctx”
vatlable. If TCP FastOpen is required, set tcpFastOpenServer, tcpiastOpenClient, and tcpfastOpenQueuesize.”}
{"t7:{"Sdate™:72022-07-21T20:22:45.537+00:007},7s" T, TeTiTASIOT, RACREPF71 I TetxT:T
EE a Rr

 

      

RSICEN RIC REP27Y PIR

 

RRR RE a ap

 

  

SCRE CI TCC [PIS I LE

       

597: No Transportiayer configu

 

       

        

       

Lil {"t7:{"Sdate™:72022-07-21720:22:45.56800:007},7s":"1", “cT:iTREPLT, RAT RER SPELL 597: "Successfully registered P
fs rinaryOnlyService”,"attr™:{ service”: TenantMigrationDonor Service, ns”: “config. tenant¥igrationDonors”}}
j0db | {~t7:{"Sdate":2022-07-21720:22:45.568+00:007},8": "1", “c": REPL", EEE J CREA MITT ML LAR FTE i
rinaryOnlyService”,"attr™:{“service”:~TenantMigrationRecipientservice™, ns": "config. tenantiigrationReciplents™}
9 {7t7:{"Sdate~:72022-07-21720:22:45.569+00:007},"5™: "1", “Cc”: CONTROL, ~1d":4615611, “ctx”:~initandlisten”, ERTL RPT

   

 

ET QO LOE

ERC GC A Pa LI

 

27017, dbPath=:~/data/db", architecture :"64-bit~, host": "6573182df8a9" }}
jodb | {Tt7:{"Sdate~:2022-07-21720:22:45.569+00:007},s": "1, ~c*: CONTROL®, ~1d~:23483, “ctx”: initandlisten”,"msg™: Build Info~,"at
=: {~butldInfo™: (“version 37,gltversion=:~657feasa61a74d7a79df 7af Bab fObc 742b748", “opensSLversion™: "OpenSSL 1.1.11 31 Mar 20207, "mod
“tcralloc”, “environment”: {~distnod™:~ubuntu2004~,"distarch™: "x86 64", target arch: x86 64-}}}}
2022-07-21720:22:45.569+00:007},"5™: "1", ~c*: CONTROL™, ~1d~:51765, -ctx”:"initandlisten”

     

 

              

RR ITH RPL)

Se você for bem atento e olhar no log do terminal irá ver a mensagem: “Mongodb conectado”,  conforme imagem abaixo:

Atmdades Terminal v 21dejul 1728 © 2) PA hd
© mauros@mauroslucios: ~/Documentos/node_projects/tutorial Q a @
mauros@mauroslucios: ~/Documentos/node pr... «  mauros@mauroslucios: ~/Documentos/node pr... mauros@mauroslucios: ~/Documentos/node pr... Ns

   

 

   

TG BEECH

     

[RT 0348”, "wuld": aeccoelc-1f7c-4169-8ce8-efa17599cad3”, “connect ionid”
EL S|

“name”: “node Js | Mongoose”, “version

RT Cat)
BE TE RR LT LE I FIR IT
EE IT I LR TLE te

          

{"t7:{"Sdate™:"2022-87-21720:22:49.699+00:00"}, 5"
(TITRE

             

[SIU TN NY

 

aI

    

       

 

 

          

 

L"architecture”: x64”, “version” :"5.15.0-41-generic™},"platforn™: "Node. js v16.14.8, LE (unified)”,"version=:74.7.0(6.4.67}}}
ER Err TI

eel {"t7:{"Sdate”:"2022-07-21720: T,  TeT:iTINDEXT, at) 0345, “ctx”:"LoglcalSessionCacheRefresh™ SCRE OT]
ex bulld: done building”, attr”: {bullduuID™:null, names config. systen. sessions”, index™:" td ~, comnitTinestanp™:null}}

godh {"t7:{"Sdate” ©22-07-21720:22:50.062 +0! 07 },"s" T,  TeT:iTINDEXT, ACRES EEE “ctx":"LoglcalSessionCacheRefresh™, “msg”: "Ind

          

ex bulld: done building”, attr™:{bullduUUID" null, namespace”: "config. systen. sessions”, index”: LsidTTL Index", connitTinestanp™ inull}}

jodb | {~t7:{"Sdate": 2022-07-21720:22:50.062+00:007}, 5": "1", ~c": COMMAND™, -1d~:51883, “ctx”: LogicalSessionCacheRefresh”, msg”: Slo
w query”, "attr :{~type:" config. systen. sessions”, “command™:{createIndexes”: “system. sessions”, v™:2," indexes”: [ {key :{~lastuse
“:1), name”: "Ls{dTTL Index", “expireAfter Seconds”: 1800} 1, ignoreUnknownndexOpt ions”: false, “wr iteConcern™:{}, Sdb™: “config™},“nunvields”:0, "resl
en:114, locks”: {~ParallelBatchur i termode™ : {~acquireCount™:{*r=:4}},"ReplicationStateTransition™: {~acquireCount™: {*w":5}}, Global~: {~acquireCo
unt™:{"r7:5,"w":1}}, “Database” :{~acquireCount™:{~r~:3,7w:1}}, Collection: {"acquireCount™:{ r~:3, w":1}}, Mutex~:{"acquireCount ISIS
torage™:{}, protocol=: "op msg”, durationillis":476}

{7t7:{"Sdate~:72022-07-21720:23:00.212+00:007} "5": "1", “CT: NETWORK™, ~1d":22943, “ctx”: listener”, msg
{“remote”:7172.19.0.3:60350", “uuid™: ~8bebd13c-1cas- 4586-905 9a8adad37fd3", “connect ionid™:2, "connect ionCount
IE TILE PER Tab RL 9.214400:007} "5": "1°, “CT:WETWORK™, ~1d”:51808, “ctx :"conn2”,"msg”: client metadata”, attr":
172.19.8.3:603507, "client": “conn”, “doc: { “driver =: { "name": ~node)s Mongoose”, “version” :4.7.07}, 70s": {~type~: "Linux", name”: "linux"
L"architecture:"x64",version™:"5.15.0-41 generic"), "platforn=: "Node. js v16.14.8, LE (unified)”, version :74.7.0(6.4.67}}}

jodb | {~t7:{"Sdate":2022-87-21720:23:48.315+00:00°},"5": "1", ~c™: STORAGE™, ~1d~:22438, ~ctx":"Checkpointer™, msg” :"WiredTiger messag
PRR ~:7[1658435028:315556][1:0x71891368d700], WT_SESSION.checkpolnt: [WT_VERB CHECKPOINT PROGRESS] saving checkpoint snapshot m
in: 34, snapshot max: 34 snapshot count: 0, oldest timestamp: (8, 0) , meta checkpoint timestamp: (8, 0) base write gen: 17}}

jodb | {Tt7:{"Sdate":2022-07-21720:24:48.629+00:007},"5": "1", ~c*: STORAGE™, ~1d~:22438, “ctx”: Checkpointer™, msg”: "WiredTiger messag
€", "attr" :{“message”:"[1658435088:629381](1:0x7¢891368d700], WT _SESSION.checkpoint: [WT VERB CHECKPOINT PROGRESS] saving checkpoint snapshot m
tn: 37, snapshot max: 37 snapshot count: 0, oldest timestamp: (8, 0) , meta checkpoint timestamp: (8, 0) base write gen: 17}}

jodb | {~t7:{"Sdate~:2022-07-21720:25:48.883+00:007},"5": "1", ~~: STORAGE™, ~1d~:22438, “ctx”: Checkpointer™, msg”: "WiredTiger messag
€", "attr": (“message :"[1658435148:883292](1:0x77891368d700], WT _SESSION.checkpoint: [WT VERB CHECKPOINT PROGRESS] saving checkpoint snapshot m
tn: 39, snapshot max: 39 snapshot count: 0, oldest timestamp: (8, 0) , meta checkpoint timestamp: (8, 8) base write gen: 17}}

jodb | {~t7:{ $date" :2022-07-21720:26:48.960+00:007},s": "1", ~c*: STORAGE™, ~1d~:22438, “ctx”: Checkpointer™, msg”: -WiredTiger messag
€", "attr": (“message :"[1658435208:960876](1:0x7¢891368d700], WT SESSION.checkpoint: [WT VERB CHECKPOINT PROGRESS] saving checkpoint snapshot m
in: 41, snapshot max: 41 snapshot count: 0, oldest timestamp: (8, 0) , meta checkpoint timestamp: (8, 0) base write gen: 17}}

Sb | {"t7:{Sdate":"2022-07-21720:27:49.130+00:007},"5": "1", ~c*: STORAGE™, ~1d~:22438, “ctx”: Checkpointer™, msg”: "WiredTiger messag
ess © attro:{ message” :"[1658435269:130044](1:0x718913684700], WT_SESSION.checkpoint: [WT VERS CHECKPOINT PROGRESS] saving checkpoint snapshot m
43, snapshot max: 43 snapshot count: 8, oldest timestamp: (8, 8) , meta checkpoint timestamp: (9, 0) base write gen: 1°}}

     

  

     

  

    
 

         
              

  

               

Connection accepted,

  
   

 

Ite

   

i]

 

                  
 

 

         

Iai

 
  
 

   

        

      

     

             

          
    

       
             

 

    

   

    
 
 

    

SN Oa XIN CN a

Volte ao browser na url: http://localhost:3000 e verás sua aplicação dockerizada em funcionamento. "Isto é magnífico!" I love you docker.

Loe Elen Ou Der Qu i Ge Gen @ 8 ser ve Elo mle ve mor we SRR oo

€ 2 C 0 © localhost 3000

# Bookmarks (4 PostgresQUT. () Mysal @ Redhat FRee. Tg passwordReco

 

 

t
“mevsage”: “Hello APD com node)s. mongodb © @
»
1 // 20220721172349
2 /7 http://localhost :3808/
5 “message”: "Hello API com nodes, mongodd e docker”

 

<u ow Qh N»O0@

8 fihos 88 Mauroslucios 88 cursos BB carros BB acoes » BB Outros favontos

Haw

 

~~
i
~
v

Na sua CLI execute os seguintes comandos de verificação docker:

  • docker ps (verás os containers em execução)
  • docker inspect <id-container> (mostrará as configurações do container)
  • docker stop <id-container> (para o container em execução)
  • docker exec -it <id-container-mongo> /bin/bash (entrará no terminal do container)
  • dentro do terminal do container mongo execute: mongo (entrará no shell do mongo)
  • execute “show databases” e verá os bancos criados no mongo
  • CTRL + P + Q sai do shell do container
PUErETY @ Google Chrome » 21dejud 1738 © RARE
Re
B [EIT T3324 AT PET FL Q a
© LITT TEI ey PYLE PI PPT TTA © mauros@mauroslucios: ~/Documentas/node pr... Ns
2urosluctos :~/Docunentos /node_projects/tutorials docker ps
CONTAINER ID IMAGE [LET CREATED STATUS [3H
NAMES
892c78aacB8a  mauroslucios/tutorial:1.8 “npn start node app._~ 15 minutes ago Up 14 minutes 0.0.0.8:3000->3000/tcp, :::3000->3000/tcp

 

 

    

ETAT

6573182df8a9  mongo REO CRT
JETT RTT

maurosgnaurosluctos:~/Docunentos /node_projects/tutorials docker exec -it 6573182df8a9 /bin/bash
r00t@6573182d18a9: /8 mango

MongoD8 shell version v5.0.3

connecting to: mongodb://127.0.8.1:27817/?conpressors-disabledsgssapiservicenan
Implicit session: session { “1d” : UUID(c76429dd-bfbc-480d-991e-7956fdaadc40")
MongoD8 server version: 5.0.3

 

LIYEeI1 14

   

© 15 mlnutes ago Up 14 minutes  0.0.0.0:27017->27817/tcp

 

   

eT)

 

Warning: the ~mongo™ shell has been superseded by “mongosh™
which delivers improved usability and compatibility.The “mong” shell has been deprecated and will be removed tn
RELL

We recommend you begin using “mongosh™.
PERTTI Er Td

SRY FEY EIR FPA Tet

 

 

   

PTS EL EPR

For interactive help, type “help”.

For more comprehensive document.
[ISCISYIPISNEmnen rey]

Questions? Try the MongoD8 Developer Community Forums
[ISPTSYII A CREA Ne)

 

 

CLR)

 

The server generated these startup warnings when booting:
2022-07-21720:27:45.708+00:00: Using the XFS filesysten is strongly recommended with the WiredTiger storage engine. See h:
REITER VII PITY
2022-07-21720:22:48.293+00:00: Access control is not enabled for the da
[eae]

  

SXVILETNCN

 

abase. Read and write access to d. CUNT

    

PIRI

 

 

Enable MongoDB's free cloud based monitoring service, which will then receive and display

Com estes passos temos um ambiente nodejs com mongo funcionado dentro do docker. Se quiser pode trocar pelo banco de dados que seu projeto se adaptar melhor conforme necessidade.

OBS: o backup do seu banco mongo está na pasta “data/db” na raiz do seu projeto.

Isto é apenas uma forma de mostrar a utilização desta ferramenta fantastica chamada docker. “I love You Docker”.

github de um exemplo mais completo: “mauroslucios/restapi-nodejs”

Até a próxima!

Mauro Lúcio Pereira da Silva

Ciência e Tecnologia
Comentários

Artigos de mauro pereira

Ver blog
há 1 ano · 1 min. de leitura

Hoje iremos criar um simples container docker com Apache “Tomcat/10.0.23” de maneira rápida e com po ...

há 1 ano · 1 min. de leitura

No Console do AWS, Acesse o RDS Management Console · No painel de navegação esquerdo, clique em Data ...

Profissionais relacionados

Você pode estar interessado nestes trabalhos

  • Cronoshare

    Encanador para motor de agua de encanamento

    Encontrado em: Cronoshare BR C2 - há 16 horas


    Cronoshare Araranguá (Santa Catarina), Brasil

    Escapo duas boia dentro do poço e daí o motor não puxa águaQual serviço de encanador está precisando? · Motor de agua · O que precisa de conserto/manutenção? · Encanamento · Que tipo de problema necessita resolver? · Não tá subindo água na caixa · Qual é o local do serviço? · Cas ...

  • Grupo Sinosserra

    Auxiliar Administrativo de Oficina

    Encontrado em: Talent BR C2 - há 1 dia


    Grupo Sinosserra Porto Alegre, Brasil effective

    JOB DESCRIPTION · Com você, somos mais COMPLETOS. · Venha fazer parte de um Grupo que acredita nas pessoas e cresce com elas · #VemproGrupo · Grupo Sinosserra · RESPONSIBILITIES AND ASSIGNMENTS · Atender com excelência os usuários do Grupo (internos e externos), tornando a ex ...

  • Cronoshare

    Casa de retiro para pessoa com mobilidade: cadeirante

    Encontrado em: Cronoshare BR C2 - há 1 dia


    Cronoshare Porto Alegre (Rio Grande do Sul), Brasil

    Procuro uma casa onde possamos asilar a vó. Ela está passando por períodos de esquecimento. Não caminha, come tudo sem restrições, fazemos papinhas e ela usa fraldas. Conversa, mas não reconhece mais a maioria das pessoas. Tem 85 anos. Não recebe nenhum benefício em razão de uma ...