-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-commands.sh
executable file
·93 lines (81 loc) · 2.8 KB
/
docker-commands.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/bash
# Altere a variável abaixo para corresponder ao nome da sua imagem Docker
IMAGE_NAME="nodejs-raw"
# Altere a variável abaixo para corresponder ao nome do seu contêiner
CONTAINER_NAME="products-api"
PORT=3000
# Função para ligar a API
start_api() {
if docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}}" | grep -q "^$CONTAINER_NAME$"; then
echo "A API já está em execução."
else
echo "Iniciando a API..."
docker start $CONTAINER_NAME
fi
}
# Função para desligar a API
stop_api() {
if docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}}" | grep -q "^$CONTAINER_NAME$"; then
echo "Parando a API..."
docker stop $CONTAINER_NAME
else
echo "A API não está em execução."
fi
}
# Função para executar os testes
run_tests() {
if docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}}" | grep -q "^$CONTAINER_NAME$"; then
if ! docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}} {{.Status}}" | grep -q "^$CONTAINER_NAME\s\+Up"; then
echo "O contêiner '$CONTAINER_NAME' está parado. Iniciando o contêiner..."
start_api
fi
echo "Executando os testes..."
docker exec $CONTAINER_NAME npm test
else
echo "Erro: O contêiner '$CONTAINER_NAME' não está em execução. Inicie o contêiner antes de executar os testes."
fi
}
# Função para executar o linter
run_linter() {
if docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}}" | grep -q "^$CONTAINER_NAME$"; then
if ! docker ps -f "name=$CONTAINER_NAME" --format "{{.Names}} {{.Status}}" | grep -q "^$CONTAINER_NAME\s\+Up"; then
echo "O contêiner '$CONTAINER_NAME' está parado. Iniciando o contêiner..."
start_api
fi
echo "Executando o linter..."
docker exec $CONTAINER_NAME npm run lint
else
echo "Erro: O contêiner '$CONTAINER_NAME' não está em execução. Inicie o contêiner antes de executar o linter."
fi
}
# Verifica se o nome do contêiner já existe
if ! docker ps -a --format "{{.Names}}" | grep -q "^$CONTAINER_NAME$"; then
echo "Erro: O contêiner '$CONTAINER_NAME' não existe. Execute o script de setup 'docker-setup.sh' primeiro."
exit 1
fi
# Exibe as opções disponíveis para o usuário
echo "Opções disponíveis:"
echo "1. Ligar a API"
echo "2. Desligar a API"
echo "3. Executar os testes"
echo "4. Executar o linter"
# Lê a opção escolhida pelo usuário
read -p "Digite o número da opção desejada: " option
# Executa a função correspondente à opção escolhida
case $option in
1)
start_api
;;
2)
stop_api
;;
3)
run_tests
;;
4)
run_linter
;;
*)
echo "Opção inválida. Saindo do script."
;;
esac