Skip to content

Commit ebbb1e7

Browse files
committed
allow dev image to deploy a demo site
1 parent 50af56b commit ebbb1e7

File tree

6 files changed

+197
-14
lines changed

6 files changed

+197
-14
lines changed

.gitignore

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ uuid.txt
2424
share
2525
config/core.properties
2626
local
27-
data/blobstorage/*
28-
data/filestorage/*
29-
data/log
30-
data/async-uuid.txt
27+
docker/data/blobstorage/*
28+
docker/data/filestorage/*
29+
docker/data/log
30+
docker/data/async-uuid.txt
3131
.plone.versioncheck.cache/
3232
.plone.versioncheck.tracked.json
3333
checkversion.html

docker/Dockerfile-dev

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ ARG PROFILE="communes-dev.cfg"
44

55
WORKDIR /
66
USER root
7+
COPY --chown=imio *.cfg *.conf requirements.txt Makefile docker/docker-initialize.py docker/*.sh /plone/
78
RUN apt-get update \
89
&& apt-get install -qqy --no-install-recommends \
910
&& buildDeps="build-essential \
@@ -48,10 +49,13 @@ RUN sed -i "s/\${buildout:directory}\/var/\/data/g" *.cfg \
4849
&& echo " ldap.cfg" >> buildout.cfg \
4950
&& echo " logging.cfg" >> buildout.cfg \
5051
&& echo " docker-dev.cfg" >> buildout.cfg \
52+
&& sed -ie "s#Products.MeetingCommunes:zcity#Products.MeetingCommunes:demo#" base.cfg \
5153
&& su -c "virtualenv -p python2 ." -s /bin/sh imio \
5254
&& su -c "bin/pip install 'python-ldap==2.4.15' -r requirements.txt" -s /bin/sh imio \
5355
&& su -c "bin/buildout -t 30 -N" -s /bin/sh imio \
54-
&& rm -rf develop-eggs/ src/ var/blobstorage/ var/filestorage/
56+
&& rm -rf develop-eggs/ var/blobstorage/ var/filestorage/
5557

5658
USER imio
57-
ENTRYPOINT ["bash"]
59+
EXPOSE 8081
60+
ENTRYPOINT ["/plone/docker-entrypoint.sh"]
61+
CMD ["instance"]

docker/docker-compose-dev.yml

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
version: '2.4'
2+
services:
3+
libreoffice:
4+
image: imiobe/libreoffice:still
5+
command: soffice --headless --norestore --accept="socket,host=libreoffice,port=2002,tcpNoDelay=1;urp;StarOffice.ServiceManager"
6+
expose:
7+
- "2002"
8+
volumes:
9+
- tmp:/tmp
10+
- vartmp:/var/tmp
11+
networks:
12+
- delib_internal
13+
labels:
14+
SERVICE_NAME: "libreoffice"
15+
restart:
16+
unless-stopped
17+
mem_limit: 200M
18+
mem_reservation: 150M
19+
mem_swappiness: 0
20+
zeo:
21+
image: imiobe/iadelib:dev
22+
command: zeoserver
23+
environment:
24+
- HOSTNAME=zeo
25+
volumes:
26+
- ./data/:/data
27+
- tmp:/tmp
28+
- vartmp:/var/tmp
29+
networks:
30+
- delib_internal
31+
labels:
32+
SERVICE_NAME: "zeo"
33+
healthcheck:
34+
test: "/plone/zeo_healthcheck.sh"
35+
instance:
36+
image: imiobe/iadelib:dev
37+
command: instance
38+
ports:
39+
- "20081:8081"
40+
networks:
41+
- delib_internal
42+
- delib_external
43+
depends_on:
44+
- zeo
45+
- libreoffice
46+
- worker-cron
47+
environment:
48+
- ZEO_CLIENT_CACHE_SIZE=1000MB
49+
- ZODB_CACHE_SIZE=100000
50+
- CLUSTER=iadelib_pm42
51+
- HOSTNAME=instance1
52+
- PLONE_PATH=demo
53+
volumes:
54+
- ./data/:/data
55+
- tmp:/tmp
56+
- vartmp:/var/tmp
57+
healthcheck:
58+
test: "curl -f localhost:8081/$$PLONE_PATH/@@ok"
59+
labels:
60+
SERVICE_NAME: "instance1"
61+
worker-cron:
62+
image: imiobe/iadelib:dev
63+
command: instance-cron
64+
ports:
65+
- "8087:8087"
66+
networks:
67+
- delib_internal
68+
- delib_external
69+
depends_on:
70+
- zeo
71+
environment:
72+
- ZEO_CLIENT_CACHE_SIZE=1000MB
73+
- ZODB_CACHE_SIZE=100000
74+
- ADMIN_PASSWORD=test
75+
- PUBLIC_URL=http://localhost/PM
76+
- PLONE_PATH=demo
77+
- CLUSTER=iadelib_pm42
78+
- HOSTNAME=worker-cron
79+
volumes:
80+
- ./data/:/data
81+
- tmp:/tmp
82+
- vartmp:/var/tmp
83+
healthcheck:
84+
test: "curl -f localhost:8087/$$PLONE_PATH/@@ok"
85+
labels:
86+
SERVICE_NAME: "worker-cron"
87+
worker-async:
88+
image: imiobe/iadelib:dev
89+
command: instance-async
90+
networks:
91+
- delib_internal
92+
depends_on:
93+
- zeo
94+
- libreoffice
95+
- worker-cron
96+
environment:
97+
- ZEO_CLIENT_CACHE_SIZE=1000MB
98+
- ZODB_CACHE_SIZE=100000
99+
- CLUSTER=iadelib_pm42
100+
- HOSTNAME=worker-async
101+
- PLONE_PATH=demo
102+
healthcheck:
103+
test: "curl -f localhost:8089/$$PLONE_PATH/@@ok"
104+
volumes:
105+
- ./data/:/data
106+
- tmp:/tmp
107+
- vartmp:/var/tmp
108+
labels:
109+
SERVICE_NAME: "worker-async"
110+
# worker-amqp:
111+
# image: imiobe/iadelib:dev
112+
# command: instance-amqp
113+
# ports:
114+
# - "20085:8286"
115+
# networks:
116+
# - delib_internal
117+
# - delib_external
118+
# depends_on:
119+
# - zeo
120+
# - worker-cron
121+
# environment:
122+
# - ZEO_CLIENT_CACHE_SIZE=1000MB
123+
# - ZODB_CACHE_SIZE=100000
124+
# - CLUSTER=iadelib_pm42
125+
# - PLONE_PATH=demo
126+
# - MQ_CLIENT_ID
127+
# - MQ_WS_URL
128+
# - MQ_WS_LOGIN
129+
# - MQ_WS_PASSWORD
130+
# - MQ_HOST
131+
# - MQ_PORT
132+
# - MQ_LOGIN
133+
# - MQ_PASSWORD
134+
# - HOSTNAME=worker-amqp
135+
# healthcheck:
136+
# test: "curl -f localhost:8286/$$PLONE_PATH/@@ok"
137+
# volumes:
138+
# - ./data/:/data
139+
# - tmp:/tmp
140+
# - vartmp:/var/tmp
141+
# labels:
142+
# SERVICE_NAME: "worker-cron"
143+
maintenance:
144+
image: imiobe/iadelib:dev
145+
command: maintenance
146+
ports:
147+
- "20089:8080"
148+
networks:
149+
- delib_internal
150+
- delib_external
151+
depends_on:
152+
- zeo
153+
- libreoffice
154+
environment:
155+
- ZEO_CLIENT_CACHE_SIZE=1000MB
156+
- ZODB_CACHE_SIZE=100000
157+
- CLUSTER=iadelib_pm42
158+
- HOSTNAME=maintenance
159+
- PLONE_PATH=demo
160+
healthcheck:
161+
test: "curl -f localhost:8080/$$PLONE_PATH/@@ok"
162+
volumes:
163+
- ./data/:/data
164+
- tmp:/tmp
165+
- vartmp:/var/tmp
166+
labels:
167+
SERVICE_NAME: "maintenance"
168+
volumes:
169+
tmp:
170+
vartmp:
171+
172+
networks:
173+
delib_internal:
174+
internal: true
175+
delib_external:

docker/docker-compose.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ services:
2323
environment:
2424
- HOSTNAME=zeo
2525
volumes:
26-
- ../data/:/data
26+
- ./data/:/data
2727
- tmp:/tmp
2828
- vartmp:/var/tmp
2929
networks:
@@ -51,7 +51,7 @@ services:
5151
- HOSTNAME=instance1
5252
- PLONE_PATH=demo
5353
volumes:
54-
- ../data/:/data
54+
- ./data/:/data
5555
- tmp:/tmp
5656
- vartmp:/var/tmp
5757
healthcheck:
@@ -77,7 +77,7 @@ services:
7777
- CLUSTER=iadelib_pm42
7878
- HOSTNAME=worker-cron
7979
volumes:
80-
- ../data/:/data
80+
- ./data/:/data
8181
- tmp:/tmp
8282
- vartmp:/var/tmp
8383
healthcheck:
@@ -92,7 +92,6 @@ services:
9292
depends_on:
9393
- zeo
9494
- libreoffice
95-
- worker-cron
9695
environment:
9796
- ZEO_CLIENT_CACHE_SIZE=1000MB
9897
- ZODB_CACHE_SIZE=100000
@@ -102,7 +101,7 @@ services:
102101
healthcheck:
103102
test: "curl -f localhost:8089/$$PLONE_PATH/@@ok"
104103
volumes:
105-
- ../data/:/data
104+
- ./data/:/data
106105
- tmp:/tmp
107106
- vartmp:/var/tmp
108107
labels:
@@ -135,7 +134,7 @@ services:
135134
healthcheck:
136135
test: "curl -f localhost:8286/$$PLONE_PATH/@@ok"
137136
volumes:
138-
- ../data/:/data
137+
- ./data/:/data
139138
- tmp:/tmp
140139
- vartmp:/var/tmp
141140
labels:
@@ -161,7 +160,7 @@ services:
161160
healthcheck:
162161
test: "curl -f localhost:8080/$$PLONE_PATH/@@ok"
163162
volumes:
164-
- ../data/:/data
163+
- ./data/:/data
165164
- tmp:/tmp
166165
- vartmp:/var/tmp
167166
labels:

docker/docker-entrypoint.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ function setup() {
1515
fi
1616
}
1717
function wait_for_cron() {
18+
echo "Waiting for cron"
1819
URL="worker-cron:8087/$PLONE_PATH"
1920
CURL="curl --write-out %{http_code} -so /dev/null $URL/@@ok"
2021
MAX_TRIES=240
2122
INTERVAL=1
23+
set +e
2224
SECONDS=0
2325
response="$($CURL)"
2426
tries=1
@@ -28,6 +30,7 @@ function wait_for_cron() {
2830
response=$($CURL)
2931
((tries+=1))
3032
done
33+
set -e
3134
if [[ $tries == "$MAX_TRIES" ]]; then
3235
echo "Failed to reach $URL after $SECONDS s"
3336
exit 1

docker/docker-initialize.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ def fixtures(self):
8585
self._fix_conf(self.instance1_conf, False)
8686
self._fix_conf(self.instance_async_conf, False)
8787
self._fix_conf(self.instance_cron_conf, True)
88-
self._fix_conf(self.instance_debug_conf, False)
88+
# instance debug doesn't exist in dev env
89+
if os.path.exists(self.instance_debug_conf):
90+
self._fix_conf(self.instance_debug_conf, False)
8991
self._fix_conf(self.zeoserver_conf, False)
9092
self._fix_amqp()
9193

0 commit comments

Comments
 (0)