Skip to content

Commit b6babea

Browse files
committed
Strict travis checks
1 parent 5d600a9 commit b6babea

5 files changed

Lines changed: 192 additions & 15 deletions

File tree

.travis.yml

Lines changed: 189 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,199 @@ language: python
22
python:
33
- 2.7
44

5+
###
6+
### Add services
7+
###
58
services:
69
- docker
710

11+
12+
###
13+
### Global variables
14+
###
15+
env:
16+
global:
17+
- MY_DOCKER_NAME="apache-2.4"
18+
- MYSQL_SOCKET_DIR=/tmp/mysql
19+
20+
21+
###
22+
### Install
23+
###
824
install:
9-
- docker build -t cytopia/apache-2.4 .
10-
- docker run -d -p 127.0.0.1:80:80 --name apache-2.4 cytopia/apache-2.4
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
1133

12-
#before_script:
13-
# - pip install -r requirements.txt
14-
# - pip install mock
15-
# - pip install requests
16-
# - pip install feedparser
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
1739

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+
###
1853
script:
19-
- docker ps | grep -q apache-2.4
20-
#- python tests.py
54+
55+
##
56+
## 01.) Test plain docker
57+
##
58+
- docker run -d -p 127.0.0.1:80:80 --name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME}
59+
- docker ps
60+
- sleep 5
61+
62+
- curl localhost
63+
- curl localhost | grep 'It works'
64+
65+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
66+
- docker rm "${MY_DOCKER_NAME}"
67+
68+
69+
70+
##
71+
## 02.) Test docker with external mounted directory
72+
##
73+
- docker run -d -p 127.0.0.1:80:80 -v ~/www:/var/www/html --name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME}
74+
- docker ps
75+
- sleep 5
76+
77+
- curl localhost
78+
- curl localhost | grep 'Static Html'
79+
80+
- curl http://localhost/index.php
81+
- curl http://localhost/index.php | grep '<?php'
82+
83+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
84+
- docker rm "${MY_DOCKER_NAME}"
85+
86+
87+
##
88+
## 03.) Test docker with external mounted directory and PHP-FPM support
89+
##
90+
- docker run -d
91+
-p 9000:9000
92+
-v ~/www:/var/www/html
93+
--name php cytopia/php-fpm-5.6
94+
- docker run
95+
-d -p 127.0.0.1:80:80
96+
-v ~/www:/var/www/html
97+
-e PHP_FPM_ENABLE=1
98+
-e PHP_FPM_SERVER_ADDR=php
99+
-e PHP_FPM_SERVER_PORT=9000
100+
--link php:php
101+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME}
102+
- docker ps
103+
- sleep 5
104+
105+
- curl localhost
106+
- curl localhost | grep 'Static Html'
107+
108+
- curl http://localhost/index.php
109+
- curl http://localhost/index.php | grep -q '<?php' && false || true
110+
111+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
112+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
113+
- docker rm "php"
114+
- docker rm "${MY_DOCKER_NAME}"
115+
116+
117+
##
118+
## 04.) Test docker with external mounted directory and PHP-FPM support and MySQL support
119+
##
120+
- docker network create -d bridge my_bridge && sleep 2
121+
122+
# MySQL
123+
- docker run
124+
-p 3306:3306
125+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
126+
-e MYSQL_SOCKET_DIR=${MYSQL_SOCKET_DIR}
127+
-e MYSQL_ROOT_PASSWORD=
128+
--network=my_bridge
129+
--name mysql cytopia/mysql-5.5 &
130+
- sleep 15
131+
132+
# PHP
133+
- docker run
134+
-p 9000:9000
135+
-v ~/www:/var/www/html
136+
-v ~/tmp/host-mysql-sock:${MYSQL_SOCKET_DIR}
137+
-e FORWARD_MYSQL_PORT_TO_LOCALHOST=1
138+
-e MYSQL_REMOTE_ADDR=mysql
139+
-e MYSQL_REMOTE_PORT=3306
140+
-e MYSQL_LOCAL_PORT=3306
141+
-e MOUNT_MYSQL_SOCKET_TO_LOCALDISK=1
142+
-e MYSQL_SOCKET_PATH=${MYSQL_SOCKET_DIR}/mysqld.sock
143+
--network=my_bridge
144+
--link mysql
145+
--name php cytopia/php-fpm-5.6 &
146+
- sleep 15
147+
148+
# HTTP
149+
- docker run
150+
-p 127.0.0.1:80:80
151+
-v ~/www:/var/www/html
152+
-e PHP_FPM_ENABLE=1
153+
-e PHP_FPM_SERVER_ADDR=php
154+
-e PHP_FPM_SERVER_PORT=9000
155+
--network=my_bridge
156+
--link php
157+
--link mysql
158+
--name ${MY_DOCKER_NAME} cytopia/${MY_DOCKER_NAME} &
159+
- sleep 15
160+
161+
# Show information
162+
- docker ps
163+
- docker network ls
164+
- docker network inspect my_bridge
165+
166+
# Test connectivity
167+
- docker exec -ti php ping -c 1 mysql
168+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
169+
170+
- docker exec -ti php ping -c 1 ${MY_DOCKER_NAME}
171+
- docker exec -ti mysql ping -c 1 ${MY_DOCKER_NAME}
172+
173+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 php
174+
- docker exec -ti ${MY_DOCKER_NAME} ping -c 1 mysql
175+
176+
# Test webserver
177+
- curl localhost
178+
- curl localhost | grep 'Static Html'
179+
180+
- curl http://localhost/index.php
181+
- curl http://localhost/index.php | grep -q '<?php' && false || true
182+
183+
- curl http://localhost/mysql_loc.php
184+
- curl http://localhost/mysql_127.php
185+
- curl http://localhost/mysql_rem.php
186+
- curl http://localhost/mysql_ip.php
187+
188+
- curl http://localhost/mysql_loc.php | grep 'YES'
189+
- curl http://localhost/mysql_127.php | grep 'YES'
190+
- curl http://localhost/mysql_rem.php | grep 'YES'
191+
- curl http://localhost/mysql_ip.php | grep 'YES'
192+
193+
# Cleanup
194+
- docker stop "$( docker ps | grep "mysql" | awk '{print $1}' )"
195+
- docker stop "$( docker ps | grep "php" | awk '{print $1}' )"
196+
- docker stop "$( docker ps | grep "${MY_DOCKER_NAME}" | awk '{print $1}' )"
197+
- docker rm "mysql"
198+
- docker rm "php"
199+
- docker rm "${MY_DOCKER_NAME}"
200+
- docker network rm my_bridge

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ LABEL \
1313
image="apache-2.4" \
1414
vendor="cytopia" \
1515
license="MIT" \
16-
build-date="2016-10-19"
16+
build-date="2016-10-20"
1717

1818

1919
# Copy scripts

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
| PHP_FPM_SERVER_PORT | int | `9000` | Port of remote PHP-FPM server |
3636
| CUSTOM_HTTPD_CONF_DIR | string | `` | Specify a directory inside the docker where Apache should look for additional config files (`*.conf`).<br/><br/>This will overwrite the default virtual host including the PHP FPM settings.<br/><br/>Make sure to mount this directory from your host into the docker. |
3737

38-
3938
### Default mount points
4039

4140
| Docker | Description |

scripts/docker-entrypoint.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ DEBUG_COMMANDS=0
88
HTTPD_CONF="/etc/httpd/conf/httpd.conf"
99

1010

11+
1112
###
1213
### Functions
1314
###

scripts/docker-install.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ run "yum -y install \
8888

8989

9090

91-
9291
###
9392
### Configure Apache
9493
###
@@ -179,8 +178,6 @@ run "sed -i'' 's/^#ServerName[[:space:]].*$/ServerName localhost:80/g' ${HTTPD_C
179178

180179
} > "/etc/httpd/conf.d/localhost.conf"
181180

182-
183-
184181
# Add test Page
185182
if [ ! -d "/var/www/html" ]; then
186183
run "mkdir -p /var/www/html"
@@ -223,4 +220,4 @@ run "chown ${MY_USER}:${MY_GROUP} /shared/httpd"
223220
### Cleanup unecessary packages
224221
###
225222
print_headline "8. Cleanup unecessary packages"
226-
run "yum -y autoremove"
223+
run "yum -y autoremove"

0 commit comments

Comments
 (0)