-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdocker-compose.yml
219 lines (204 loc) · 7.24 KB
/
docker-compose.yml
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
version: '2.4'
services:
activemq-itmf:
image: solita/harja-activemq:5.15.9
mem_limit: 500m
environment:
- "TZ=Europe/Helsinki"
- "TCP_PORT=${HARJA_ITMF_BROKER_PORT}"
- "UI_PORT=${HARJA_ITMF_BROKER_AI_PORT}"
ports:
- "127.0.0.1:${HARJA_ITMF_BROKER_PORT}:${HARJA_ITMF_BROKER_PORT}" # broker (admin:adminactivemq)(amq:amq)
- "127.0.0.1:${HARJA_ITMF_BROKER_AI_PORT}:${HARJA_ITMF_BROKER_AI_PORT}" # web localhost:8171/admin/queues.jsp (admin:admin)
harja-app-1:
extends:
file: docker-compose-common.yml
service: app
depends_on:
- "${POSTGRESQL_NAME}"
ports:
- "127.0.0.1:3000:3000" # web port
- "127.0.0.1:${BACKEND_REPL_PORT_1}:${BACKEND_REPL_PORT_1}" # REPL port
command: |
/bin/bash -c "
echo 'ALOITELLAAN KOMENTOA'
touch /var/log/harja.log
if [[ -n '${LEININGEN_EMACS_PROFILE}' ]]
then
LEIN_PROFILES=+dev-container,+${LEININGEN_EMACS_PROFILE}
else
LEIN_PROFILES=+dev-container
fi
# Ei haluta, että useampi käännös pyörii yhtä aikaa
{
flock -x 200
if [[ ! -e ${DC_JAETTU_KANSIO}/compile.done ]]
then
echo 'ALOITETAAN KÄÄNNÖSHOMMAT'
/opt/odota-possu-ja-kaynnista-harja.sh '${LEININGEN_CLEAN}' \"with-profile $${LEIN_PROFILES} compile\"
echo 'KÄÄNNÖS DONE'
touch ${DC_JAETTU_KANSIO}/compile.done
fi;
} 200>${DC_JAETTU_KANSIO}/compile.lock
cd ${DC_HARJA_KANSIO}
if [[ -z \"$$(grep 'defproject harja' project.clj)\" ]]; then exit; fi;
if [[ -d /opt/.harja ]]
then
mv /opt/.harja ../.harja
fi
# Enable job control
set -m
THIS_IP=$$(ip addr | grep global | awk '{ print $$2 }' | grep -o -E ^[^/]*)
echo 'ALOITETAAN REPL'
# < dev/null koska https://github.com/technomancy/leiningen/issues/1173
lein trampoline with-profile $${LEIN_PROFILES} repl :headless :host 0.0.0.0 :port ${BACKEND_REPL_PORT_1} > /var/log/harja.log 2>&1 </dev/null &
# Odotetaan, että back repl saadaan pystyyn
while [[ -z \"$$(curl -sS $${THIS_IP}:${BACKEND_REPL_PORT_1} 2>&1 | grep 'Empty reply from server')\" ]]
do
sleep 5
done
if [[ -n '${HOST_USER_ID}' ]]
then
find -P ${DC_HARJA_KANSIO} -user 'root' -exec chown ${HOST_USER_ID}:${HOST_USER_ID} {} \; ;
fi;
touch ${DC_JAETTU_KANSIO}/repl_1.done
echo 'REPL käynnistetty'
# Tuodaan harja repl pyörimään etualalle
fg
"
harja-app-2:
extends:
file: docker-compose-common.yml
service: app
depends_on:
- "${POSTGRESQL_NAME}"
ports:
- "127.0.0.1:${BACKEND_REPL_PORT_2}:${BACKEND_REPL_PORT_2}" # Backend REPL port
command: |
/bin/bash -c "
echo 'ALOITELLAAN KOMENTOA'
touch /var/log/harja.log
if [[ -n '${LEININGEN_EMACS_PROFILE}' ]]
then
LEIN_PROFILES=+dev-container,+${LEININGEN_EMACS_PROFILE}
else
LEIN_PROFILES=+dev-container
fi
# Ei haluta, että useampi käännös pyörii yhtä aikaa
{
flock -x 200
if [[ ! -e ${DC_JAETTU_KANSIO}/compile.done ]]
then
echo 'ALOITETAAN KÄÄNNÖSHOMMAT'
/opt/odota-possu-ja-kaynnista-harja.sh '${LEININGEN_CLEAN}' \"with-profile $${LEIN_PROFILES} compile\"
echo 'KÄÄNNÖS DONE'
touch ${DC_JAETTU_KANSIO}/compile.done
fi;
} 200>${DC_JAETTU_KANSIO}/compile.lock
cd ${DC_HARJA_KANSIO}
if [[ -z \"$$(grep 'defproject harja' project.clj)\" ]]; then exit; fi;
if [[ -d /opt/.harja ]]
then
mv /opt/.harja ../.harja
fi
# Enable job control
set -m
THIS_IP=$$(ip addr | grep global | awk '{ print $$2 }' | grep -o -E ^[^/]*)
while [[ ! -e ${DC_JAETTU_KANSIO}/repl_1.done ]]
do
sleep 1
done
echo 'ALOITETAAN REPL'
lein trampoline with-profile $${LEIN_PROFILES} repl :headless :host 0.0.0.0 :port ${BACKEND_REPL_PORT_2} > /var/log/harja.log 2>&1 </dev/null &
# Odotetaan, että back repl saadaan pystyyn
while [[ -z \"$$(curl -sS $${THIS_IP}:${BACKEND_REPL_PORT_2} 2>&1 | grep 'Empty reply from server')\" ]]
do
sleep 5
done
if [[ -n '${HOST_USER_ID}' ]]
then
find -P ${DC_HARJA_KANSIO} -user 'root' -exec chown ${HOST_USER_ID}:${HOST_USER_ID} {} \; ;
fi;
touch ${DC_JAETTU_KANSIO}/repl_2.done
echo 'REPL käynnistetty'
fg
"
harja-frontend:
extends:
file: docker-compose-common.yml
service: app
depends_on:
- "${POSTGRESQL_NAME}"
ports:
- "127.0.0.1:${FRONTEND_REPL_PORT}:${FRONTEND_REPL_PORT}" # Frontend REPL port
command: |
/bin/bash -c "
echo 'ALOITELLAAN KOMENTOA'
touch /var/log/harja.log
apt-get install -y screen
if [[ -n '${LEININGEN_EMACS_PROFILE}' ]]
then
LEIN_PROFILES=+dev-container,+${LEININGEN_EMACS_PROFILE}
else
LEIN_PROFILES=+dev-container
fi
{
flock -x 200
if [[ ! -e ${DC_JAETTU_KANSIO}/compile.done ]]
then
echo 'ALOITETAAN KÄÄNNÖSHOMMAT'
/opt/odota-possu-ja-kaynnista-harja.sh '${LEININGEN_CLEAN}' \"with-profile $${LEIN_PROFILES} compile\"
echo 'KÄÄNNÖS DONE'
touch ${DC_JAETTU_KANSIO}/compile.done
fi;
} 200>${DC_JAETTU_KANSIO}/compile.lock
cd ${DC_HARJA_KANSIO}
if [[ -z \"$$(grep 'defproject harja' project.clj)\" ]]; then exit; fi;
if [[ -d /opt/.harja ]]
then
mv /opt/.harja ../.harja
fi
echo 'Aloitetaan LESS kääntäminen'
sh/tarkkaile_less.sh $${LEIN_PROFILES} > /var/log/harja_less.log 2>&1
disown
echo 'Luodaan .edn filut figwheeliä varten'
mkdir -p figwheel_conf/luodut
rm figwheel_conf/luodut/*
lein with-profile $${LEIN_PROFILES} run -m harja.tyokalut.edn-eval -o figwheel_conf/luodut figwheel_conf/dev-container.cljs.edn
echo 'Käynnistetään frontin repl'
screen -S figwheel -d -m lein trampoline with-profile $${LEIN_PROFILES},+dev-cljs run -m figwheel.main -b figwheel_conf/luodut/dev-container --repl
THIS_IP=$$(ip addr | grep global | awk '{ print $$2 }' | grep -o -E ^[^/]*)
while [[ $$(curl -s -o /dev/null -w '%{http_code}' $${THIS_IP}:${FRONTEND_REPL_PORT} 2>&1) != '200' ]]
do
sleep 5
done
echo 'Front repl käynnistetty'
if [[ -n '${HOST_USER_ID}' ]]
then
find -P ${DC_HARJA_KANSIO} -user 'root' -exec chown ${HOST_USER_ID}:${HOST_USER_ID} {} \; ;
fi;
touch ${DC_JAETTU_KANSIO}/front.done
# Ei tuoda figwheel.mainia eteen, koska se tuppaa feilaamaan aika herkästi,
# jolloinka joudutaan ajamaan tämä kontti uusiksi (hidasta puuhaa)
# Sen sijaan annetaan käyttäjän itse mennä konttiin sisälle ja pyöräyttää
# prosessi uudestaan käyntiin
while true
do
sleep 100
done
"
harjadb:
image: solita/harjadb:centos-12-compose
mem_limit: 1g
stdin_open: true
tty: true
environment:
- "TZ=Europe/Helsinki"
env_file:
- .docker_compose_container_env
ports:
- "127.0.0.1:5432:5432"
volumes:
- "./tietokanta:/var/lib/pgsql/harja/tietokanta"
volumes:
yhteiset_tiedostot: