Skip to content

Commit 913d5fb

Browse files
committed
Initial commit
0 parents  commit 913d5fb

12 files changed

+1391
-0
lines changed

.travis.yml

Lines changed: 361 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,361 @@
1+
language: python
2+
python:
3+
- 2.7
4+
5+
###
6+
### Add services
7+
###
8+
services:
9+
- docker
10+
11+
12+
###
13+
### Global variables
14+
###
15+
env:
16+
global:
17+
- MY_DOCKER_NAME="my-httpd-docker"
18+
- MYSQL_SOCKET_DIR=/tmp/mysql
19+
20+
21+
###
22+
### Install
23+
###
24+
install:
25+
- docker version
26+
27+
# Build my docker
28+
- docker build -t cytopia/${MY_DOCKER_NAME} .
29+
30+
# Pull docker dependencies
31+
- docker pull cytopia/php-fpm-5.6
32+
- docker pull cytopia/mysql-5.5
33+
34+
# Create directories
35+
- mkdir -p ~/www
36+
- mkdir -p ~/tmp/host-mysql-sock
37+
- chmod 777 ~/www
38+
- chmod 777 ~/tmp/host-mysql-sock
39+
40+
# Add html and php files
41+
- echo "Static Html" > ~/www/index.html
42+
- echo "<?php echo 'Helo world'; ?>" > ~/www/index.php
43+
- echo "<?php error_reporting(-1); ini_set('display_errors', 1); if (mysqli_connect('localhost', 'root', '')) { echo 'YES'; } else { echo 'NO ' . mysqli_connect_error(); }" > ~/www/mysql_loc.php
44+
- echo "<?php error_reporting(-1); ini_set('display_errors', 1); if (mysqli_connect('127.0.0.1', 'root', '')) { echo 'YES'; } else { echo 'NO ' . mysqli_connect_error(); }" > ~/www/mysql_127.php
45+
- echo "<?php error_reporting(-1); ini_set('display_errors', 1); if (mysqli_connect('mysql', 'root', '')) { echo 'YES'; } else { echo 'NO ' . mysqli_connect_error(); }" > ~/www/mysql_rem.php
46+
- echo "<?php error_reporting(-1); ini_set('display_errors', 1); if (mysqli_connect(gethostbyname('mysql'), 'root', '')) { echo 'YES'; } else { echo 'NO ' . mysqli_connect_error(); }" > ~/www/mysql_ip.php
47+
48+
49+
50+
###
51+
### Test
52+
###
53+
script:
54+
55+
##
56+
## 01.) [a](DEBUG) Test plain docker
57+
##
58+
- docker run
59+
-p 127.0.0.1:80:80
60+
-e DEBUG_COMPOSE_ENTRYPOINT=1
61+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
62+
- sleep 5
63+
64+
- docker ps
65+
66+
- curl localhost
67+
- curl localhost | grep 'It works'
68+
69+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
70+
- docker rm "${MY_DOCKER_NAME}"
71+
##
72+
## 01.) [b](SILENT) Test plain docker
73+
##
74+
- docker run
75+
-p 127.0.0.1:80:80
76+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
77+
- sleep 5
78+
79+
- docker ps
80+
81+
- curl localhost
82+
- curl localhost | grep 'It works'
83+
84+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
85+
- docker rm "${MY_DOCKER_NAME}"
86+
87+
88+
89+
##
90+
## 02.) [a](DEBUG) Test docker with external mounted directory
91+
##
92+
- docker run
93+
-p 127.0.0.1:80:80
94+
-v ~/www:/var/www/html
95+
-e DEBUG_COMPOSE_ENTRYPOINT=1
96+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
97+
- sleep 5
98+
99+
- docker ps
100+
101+
- curl localhost
102+
- curl localhost | grep 'Static Html'
103+
104+
- curl http://localhost/index.php
105+
- curl http://localhost/index.php | grep '<?php'
106+
107+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
108+
- docker rm "${MY_DOCKER_NAME}"
109+
##
110+
## 02.) [b](SILENT) Test docker with external mounted directory
111+
##
112+
- docker run
113+
-p 127.0.0.1:80:80
114+
-v ~/www:/var/www/html
115+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
116+
- sleep 5
117+
118+
- docker ps
119+
120+
- curl localhost
121+
- curl localhost | grep 'Static Html'
122+
123+
- curl http://localhost/index.php
124+
- curl http://localhost/index.php | grep '<?php'
125+
126+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
127+
- docker rm "${MY_DOCKER_NAME}"
128+
129+
130+
131+
##
132+
## 03.) [a](DEBUG) Test docker with external mounted directory and PHP-FPM support
133+
##
134+
- docker run
135+
-p 9000:9000
136+
-v ~/www:/var/www/html
137+
-e DEBUG_COMPOSE_ENTRYPOINT=1
138+
--name php cytopia/php-fpm-5.6 &
139+
- sleep 5
140+
141+
- docker run
142+
-p 127.0.0.1:80:80
143+
-v ~/www:/var/www/html
144+
-e DEBUG_COMPOSE_ENTRYPOINT=1
145+
-e PHP_FPM_ENABLE=1
146+
-e PHP_FPM_SERVER_ADDR=php
147+
-e PHP_FPM_SERVER_PORT=9000
148+
--link php:php
149+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
150+
- sleep 5
151+
152+
- docker ps
153+
154+
- curl localhost
155+
- curl localhost | grep 'Static Html'
156+
157+
- curl http://localhost/index.php
158+
- curl http://localhost/index.php | grep -q '<?php' && false || true
159+
160+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
161+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
162+
- docker rm "php"
163+
- docker rm "${MY_DOCKER_NAME}"
164+
##
165+
## 03.) [b](SILENT) Test docker with external mounted directory and PHP-FPM support
166+
##
167+
- docker run
168+
-p 9000:9000
169+
-v ~/www:/var/www/html
170+
--name php cytopia/php-fpm-5.6 &
171+
- sleep 5
172+
173+
- docker run
174+
-p 127.0.0.1:80:80
175+
-v ~/www:/var/www/html
176+
-e PHP_FPM_ENABLE=1
177+
-e PHP_FPM_SERVER_ADDR=php
178+
-e PHP_FPM_SERVER_PORT=9000
179+
--link php:php
180+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
181+
- sleep 5
182+
183+
- docker ps
184+
185+
- curl localhost
186+
- curl localhost | grep 'Static Html'
187+
188+
- curl http://localhost/index.php
189+
- curl http://localhost/index.php | grep -q '<?php' && false || true
190+
191+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
192+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
193+
- docker rm "php"
194+
- docker rm "${MY_DOCKER_NAME}"
195+
196+
197+
198+
##
199+
## 04.) [a](DEBUG) Test docker with external mounted directory and PHP-FPM support and MySQL support
200+
##
201+
- docker network create -d bridge my_bridge && sleep 2
202+
# MySQL
203+
- docker run
204+
-p 3306:3306
205+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
206+
-e DEBUG_COMPOSE_ENTRYPOINT=1
207+
-e MYSQL_SOCKET_DIR=${MYSQL_SOCKET_DIR}
208+
-e MYSQL_ROOT_PASSWORD=
209+
--network=my_bridge
210+
--name mysql cytopia/mysql-5.5 &
211+
- sleep 15
212+
# PHP
213+
- docker run
214+
-p 9000:9000
215+
-v ~/www:/var/www/html
216+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
217+
-e DEBUG_COMPOSE_ENTRYPOINT=1
218+
-e FORWARD_MYSQL_PORT_TO_LOCALHOST=1
219+
-e MYSQL_REMOTE_ADDR=mysql
220+
-e MYSQL_REMOTE_PORT=3306
221+
-e MYSQL_LOCAL_PORT=3306
222+
-e MOUNT_MYSQL_SOCKET_TO_LOCALDISK=1
223+
-e MYSQL_SOCKET_PATH=${MYSQL_SOCKET_DIR}/mysqld.sock
224+
--network=my_bridge
225+
--link mysql
226+
--name php cytopia/php-fpm-5.6 &
227+
- sleep 15
228+
# HTTP
229+
- docker run
230+
-p 127.0.0.1:80:80
231+
-v ~/www:/var/www/html
232+
-e DEBUG_COMPOSE_ENTRYPOINT=1
233+
-e PHP_FPM_ENABLE=1
234+
-e PHP_FPM_SERVER_ADDR=php
235+
-e PHP_FPM_SERVER_PORT=9000
236+
--network=my_bridge
237+
--link php
238+
--link mysql
239+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
240+
- sleep 15
241+
# Show information
242+
- docker ps
243+
- docker network ls
244+
- docker network inspect my_bridge
245+
# Test connectivity
246+
- docker exec -ti php ping -c 1 mysql
247+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
248+
249+
- docker exec -ti php ping -c 1 ${MY_DOCKER_NAME}
250+
- docker exec -ti mysql ping -c 1 ${MY_DOCKER_NAME}
251+
252+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 php
253+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
254+
# Test webserver
255+
- curl localhost
256+
- curl localhost | grep 'Static Html'
257+
258+
- curl http://localhost/index.php
259+
- curl http://localhost/index.php | grep -q '<?php' && false || true
260+
261+
- curl http://localhost/mysql_loc.php
262+
- curl http://localhost/mysql_127.php
263+
- curl http://localhost/mysql_rem.php
264+
- curl http://localhost/mysql_ip.php
265+
266+
- curl http://localhost/mysql_loc.php | grep 'YES'
267+
- curl http://localhost/mysql_127.php | grep 'YES'
268+
- curl http://localhost/mysql_rem.php | grep 'YES'
269+
- curl http://localhost/mysql_ip.php | grep 'YES'
270+
# Cleanup
271+
- docker stop "$( docker ps | grep "mysql" | awk '{print $1}' )"
272+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
273+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
274+
- docker rm "mysql"
275+
- docker rm "php"
276+
- docker rm "${MY_DOCKER_NAME}"
277+
- docker network rm my_bridge
278+
# Show final docker status information
279+
- docker ps
280+
- docker network ls
281+
282+
##
283+
## 04.) [b](SILENT) Test docker with external mounted directory and PHP-FPM support and MySQL support
284+
##
285+
- docker network create -d bridge my_bridge && sleep 2
286+
# MySQL
287+
- docker run
288+
-p 3306:3306
289+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
290+
-e MYSQL_SOCKET_DIR=${MYSQL_SOCKET_DIR}
291+
-e MYSQL_ROOT_PASSWORD=
292+
--network=my_bridge
293+
--name mysql cytopia/mysql-5.5 &
294+
- sleep 15
295+
# PHP
296+
- docker run
297+
-p 9000:9000
298+
-v ~/www:/var/www/html
299+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
300+
-e FORWARD_MYSQL_PORT_TO_LOCALHOST=1
301+
-e MYSQL_REMOTE_ADDR=mysql
302+
-e MYSQL_REMOTE_PORT=3306
303+
-e MYSQL_LOCAL_PORT=3306
304+
-e MOUNT_MYSQL_SOCKET_TO_LOCALDISK=1
305+
-e MYSQL_SOCKET_PATH=${MYSQL_SOCKET_DIR}/mysqld.sock
306+
--network=my_bridge
307+
--link mysql
308+
--name php cytopia/php-fpm-5.6 &
309+
- sleep 15
310+
# HTTP
311+
- docker run
312+
-p 127.0.0.1:80:80
313+
-v ~/www:/var/www/html
314+
-e PHP_FPM_ENABLE=1
315+
-e PHP_FPM_SERVER_ADDR=php
316+
-e PHP_FPM_SERVER_PORT=9000
317+
--network=my_bridge
318+
--link php
319+
--link mysql
320+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
321+
- sleep 15
322+
# Show information
323+
- docker ps
324+
- docker network ls
325+
- docker network inspect my_bridge
326+
# Test connectivity
327+
- docker exec -ti php ping -c 1 mysql
328+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
329+
330+
- docker exec -ti php ping -c 1 ${MY_DOCKER_NAME}
331+
- docker exec -ti mysql ping -c 1 ${MY_DOCKER_NAME}
332+
333+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 php
334+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
335+
# Test webserver
336+
- curl localhost
337+
- curl localhost | grep 'Static Html'
338+
339+
- curl http://localhost/index.php
340+
- curl http://localhost/index.php | grep -q '<?php' && false || true
341+
342+
- curl http://localhost/mysql_loc.php
343+
- curl http://localhost/mysql_127.php
344+
- curl http://localhost/mysql_rem.php
345+
- curl http://localhost/mysql_ip.php
346+
347+
- curl http://localhost/mysql_loc.php | grep 'YES'
348+
- curl http://localhost/mysql_127.php | grep 'YES'
349+
- curl http://localhost/mysql_rem.php | grep 'YES'
350+
- curl http://localhost/mysql_ip.php | grep 'YES'
351+
# Cleanup
352+
- docker stop "$( docker ps | grep "mysql" | awk '{print $1}' )"
353+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
354+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
355+
- docker rm "mysql"
356+
- docker rm "php"
357+
- docker rm "${MY_DOCKER_NAME}"
358+
- docker network rm my_bridge
359+
# Show final docker status information
360+
- docker ps
361+
- docker network ls

0 commit comments

Comments
 (0)