Node SQL Server Application - Atividade 4 Cloud - Gabriel Oliveira de Sousa Coelho - RA: 10482211337
Esta aplicação é um exemplo simples em Node.js que se conecta a um banco de dados SQL Server, lê e insere dados em uma tabela. A aplicação é empacotada como um contêiner Docker e pode ser facilmente executada em qualquer ambiente compatível com Docker.
- Docker e Docker Compose instalados.
- Conta no Docker Hub para publicar a imagem do Docker.
- Conta no GitHub para versionar o código.
Clone o repositório do GitHub para o seu ambiente local.
git clone https://github.com/seu-usuario/node-sqlserver-app.git
cd node-sqlserver-app
Verifique o arquivo docker-compose.yml
para garantir que ele esteja configurado corretamente.
version: '3.8'
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
container_name: sqlserver-atividadecloud
environment:
SA_PASSWORD: 'password@Password'
ACCEPT_EULA: 'Y'
ports:
- "1433:1433"
volumes:
- sqlserverdata-atividadecloud:/var/opt/mssql
networks:
- sqlserver_network
app:
build: .
ports:
- "3000:3000"
depends_on:
- sqlserver
environment:
DB_SERVER: sqlserver
DB_USER: sa
DB_PASSWORD: 'password@Password'
DB_NAME: master
DB_PORT: 1433
networks:
- sqlserver_network
networks:
sqlserver_network:
volumes:
sqlserverdata-atividadecloud:
Navegue até o diretório do projeto e execute o comando para subir os containers.
docker-compose up -d
Conecte-se ao container SQL Server para criar o banco de dados e a tabela.
docker exec -it sqlserver-atividadecloud /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'password@Password'
No prompt do SQL Server, execute o script para criar a tabela e inserir os dados.
CREATE DATABASE [data-base];
USE [data-base];
CREATE TABLE tb_Notas (
id INT IDENTITY(1,1) PRIMARY KEY,
nome NVARCHAR(255),
descricao NVARCHAR(255)
);
DECLARE @i INT = 1;
WHILE @i <= 10
BEGIN
INSERT INTO tb_Notas ( nome, descricao)
VALUES ( CONCAT('Nota ', @i), CONCAT('Descrição da Nota ', @i));
SET @i = @i + 1;
END
Acesse a aplicação no navegador para verificar se está funcionando.
- URL da aplicação: http://localhost:3000/buscar-notas
- Endpoints adicionais:
- Liveness Check: http://localhost:3000/liveness
- Readiness Check: http://localhost:3000/readiness
Inicialize o repositório local e configure o repositório remoto no GitHub.
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/seu-usuario/node-sqlserver-app.git
git branch -M main
git push -u origin main
Construa a imagem Docker e publique no Docker Hub.
docker build -t seu-usuario/node-sqlserver-app .
docker login
docker tag seu-usuario/node-sqlserver-app:latest seu-usuario/node-sqlserver-app:0.0.1
docker push seu-usuario/node-sqlserver-app:0.0.1
Você pode criar um job no SQL Server Agent para automatizar as inserções, caso deseje.
- Acesse o SQL Server Management Studio (SSMS).
- Navegue até SQL Server Agent > Jobs > New Job.
- Configure o job com um script de inserção similar ao descrito anteriormente.
Crie uma rede Docker chamada sqlserver_network
.
docker network create sqlserver_network
Execute o contêiner SQL Server dentro da rede sqlserver_network
.
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=password@Password" \
--network sqlserver_network \
--name sqlserver-atividadecloud-test \
-p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2019-latest
Execute o contêiner da aplicação na mesma rede.
docker run -e DB_SERVER=sqlserver-atividadecloud-test \
-e DB_USER=sa \
-e DB_PASSWORD=password@Password \
-e DB_NAME=master \
--network sqlserver_network \
--name node-sqlserver-app \
-p 3000:3000 \
-d gcoelhotech/node-sqlserver-app
Use o comando abaixo para baixar a imagem diretamente do Docker Hub.
docker pull gcoelhotech/node-sqlserver-app
Depois de baixar a imagem, você pode executá-la com o comando:
docker run -e DB_SERVER=sqlserver-atividadecloud-test \
-e DB_USER=sa \
-e DB_PASSWORD=password@Password \
-e DB_NAME=master \
--network sqlserver_network \
--name node-sqlserver-app \
-p 3000:3000 \
-d gcoelhotech/node-sqlserver-app
Se encontrar problemas ao conectar a aplicação ao banco de dados, verifique:
- Rede Docker: Certifique-se de que os contêineres estão na mesma rede.
- Variáveis de Ambiente: Verifique se as variáveis de ambiente estão configuradas corretamente.
- Logs de Erro: Consulte os logs dos contêineres para mais detalhes sobre possíveis erros.
docker logs node-sqlserver-app
docker logs sqlserver-atividadecloud-test
Com esses passos, você deve ser capaz de configurar, executar e publicar a aplicação. Certifique-se de que o Docker e Docker Compose estão corretamente instalados e configurados em seu ambiente. Caso encontre problemas, verifique os logs dos contêineres para obter mais informações sobre erros e possíveis soluções.