-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.sh
executable file
·166 lines (141 loc) · 5.98 KB
/
setup.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#!/bin/bash
# Usando uma lista com botões de rádio com o Zenity
# export CONTAINERS=$(docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Names}}")
#----------#
# Welcome #
#----------#
#zenity --height="120" --width="300" --notification --text "Olá ${LOGNAME} :)"
export PATH = "${PWD}/app"
# REMOÇÃO DE CONTAINERS E IMAGENS
sleep 1s
# Criando variavel global e atribuindo informacoes sobre docker na máquina local
export CONTAINER=$(docker ps -a --format "{{.Names}}")
# Caso tenha algum container
#----------#
# DELETE #
#----------#
if [[ "$CONTAINER" ]]; then
# Criando uma lista de opções para dados serem excluídos
DELETE=$(zenity --height="360" --width="720" --list --text "Iniciando projeto" \
--radiolist \
--column "" \
--column "Excluir" \
TRUE Apagar-Tudo FALSE $CONTAINER);
# Caso a exclusão foi para containers; então
if [[ "${DELETE}" == "${CONTAINER}" ]]; then
print_style "Excluindo ${CONTAINER}...\n" "info";
docker stop "${DELETE}"
docker rm -f "${DELETE}"
docker rmi -f "${DELETE}"
sleep 1s
zenity --height="120" --width="360" --notification --text "\n${CONTAINER} foi apagado!"
exit 0
else
# Caso a exclusão foi para apagar tudo; então
if [[ "${DELETE}" == "Apagar-Tudo" ]]; then
# Pergunta se realmente deseja apagar todos containers
zenity --question --width="420" --text "Tem certeza que deseja apagar todos os containers?"
if [[ $? = 0 ]]; then
print_style "Deletando todos containers...\n" "info"
docker stop $(docker ps -aq)
docker rm -f $(docker ps -aq)
docker rmi -f $(docker images -aq)
sleep 1s
zenity --height="120" --width="300" --notification --text "Todos os containers foram excluidos!"
else
exit 0
fi
else
# Caso nenhum. Saia!
exit 0
fi
fi
fi
# REMOÇÃO DE CONTAINERS E IMAGENS }
# DOCKTERIZANDO AMBIENTE DA APLICAÇÃO
#----------#
# Ambiente #
#----------#
zenity --height="120" --width="300" --notification --text "Iniciando projeto...\n" "info"
ITEM_SELECIONADO=$(zenity --height="360" --width="720" --list --text "Iniciando projeto" \
--radiolist \
--column "Selecionar" \
--column "Métodos" \
TRUE Imagens FALSE Microservicos);
# Caso algum método ágil para desenvolver foi selecionado
if [[ "$ITEM_SELECIONADO" ]]; then
# Caso método seja equivalente a Imagens
# **************************************
# ********** UP IMAGENS DOCKER *********
# **************************************
if [[ "${ITEM_SELECIONADO}" == "Imagens" ]]; then
IMAGEM_SELECIONADO=$(zenity --height="300" --width="600" --list --text "Escolha suas imagens Dockerfile" \
--radiolist \
--column "Selecionar" \
--column "Imagens" \
TRUE ahsouza/laravel FALSE ahsouza/vuejs FALSE Todas);
# Caso a imagem foi realmente selecionada
if [[ "${IMAGEM_SELECIONADO}" == "ahsouza/laravel" ]]; then
sleep 1s
zenity --height="120" --width="360" --notification --text "\Construindo ${IMAGEM_SELECIONADO}..."
echo "Building ${IMAGEM_SELECIONADO}..." "info";
docker build -t ${IMAGEM_SELECIONADO} -f laravel.Dockerfile .
#docker run -d --name ahsouza -v $(pwd):/var/www -p 8000:8000 ahsouza/laravel-5.8
docker run -d -p 8000:8000 --name timenow-dev-laravel ${IMAGEM_SELECIONADO}
docker exec -it timenow-dev-laravel bash up.sh
# utilizando volumes e fazendo backup da aplicação
# docker run --rm --volumes-from timenow-dev-laravel -v $(pwd):/backup ubuntu bash -c "cd /var/www && tar cvf /backup/backup.tar ."
docker run --rm --volumes-from timenow-dev-laravel -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/
sleep 1s
zenity --height="120" --width="300" --info --text "\nImagem <b>${IMAGEM_SELECIONADO}</b> \n\construida com sucesso!"
elif [[ "${IMAGEM_SELECIONADO}" == "ahsouza/vuejs" ]]; then
sleep 1s
zenity --height="120" --width="360" --notification --text "\Construindo ${IMAGEM_SELECIONADO}..."
echo "Building ${IMAGEM_SELECIONADO}..." "info";
docker build -t ${IMAGEM_SELECIONADO} -f vue.Dockerfile .
#docker run -d --name ahsouza -v $(pwd):/var/www -p 8000:8000 ahsouza/vuejs
docker run -d -p 8080:8080 --name timenow-dev-vue ${IMAGEM_SELECIONADO}
#docker exec -it ahsouza bash server.sh
docker exec -it timenow-dev-vue bash up.sh
sleep 1s
zenity --height="120" --width="300" --info --text "\nImagem <b>${IMAGEM_SELECIONADO}</b> \n\construida com sucesso!"
elif [[ "${IMAGEM_SELECIONADO}" == "Todas" ]]; then
sleep 1s
zenity --height="120" --width="360" --notification --text "\Construindo API Laravel & SPA Vue..."
echo "Building API & SPA..."
docker build -t ahsouza/vuejs -f vue.Dockerfile .
docker run -d -p 8080:8080 --name timenow-dev-vue ahsouza/vuejs
docker build -t ahsouza/laravel -f laravel.Dockerfile .
docker run -d -p 8000:8000 --name timenow-dev-laravel ahsouza/laravel
docker exec -it timenow-dev-laravel bash up.sh
sleep 1s
zenity --height="120" --width="300" --info --text "\nImagens construídas com sucesso!"
else
# Caso nenhum. Saia!
exit 0
fi
fi
else
# **************************************
# ********* UP SERVICES DOCKER *********
# **************************************
SERVICE_SELECIONADO=$(zenity --height="300" --width="600" --list --text "Ativando serviços" \
--checklist \
--column "Selecionar" \
--column "Serviços" \
FALSE apache FALSE redis FALSE nginx FALSE mysql FALSE oracle FALSE mongo FALSE wordpress FALSE aws);
# Caso método seja equivalente a Microserviços
if [[ "$SERVICE_SELECIONADO" ]]; then
sleep 1s
zenity --height="120" --width="300" --notification --text "\Habilitando <b>${SERVICE_SELECIONADO}</b>..."
echo "Activating services...";
echo "Activating ${SERVICE_SELECIONADO}...";
docker-compose up
docker exec -it app bash
./up.sh
else
# Caso nenhum. Saia!
exit 0
fi
fi
fi