44
55TAG=ngx
66BUILD_NUMBER=" ${BUILD_NUMBER:- ${DRONE_BUILD_NUMBER} } "
7- PORT=$(( ${BUILD_NUMBER} + 1025 ))
7+ PORT=" ${HTTPS_LISTEN_PORT :- 10443} "
88BUILD_NUMBER=" ${BUILD_NUMBER:- local} "
99START_INSTANCE=" docker run "
10- DOCKER_HOST_NAME=172.17.0.1
10+ DOCKER_HOST_NAME=" localhost "
1111MOCKSERVER=" mockserver-${BUILD_NUMBER} "
1212SLOWMOCKSERVER=" slowmockserver-${BUILD_NUMBER} "
1313MUTUAL_TLS=" mutual-tls-${BUILD_NUMBER} "
@@ -40,13 +40,17 @@ function clean_up() {
4040}
4141
4242function add_files_to_container() {
43+ echo " Copying files to container: $1 "
4344 local CONTAINER=$1
4445 shift
4546 while [[ -n $@ ]]; do
4647 local file=$1
4748 shift
48- local dest=$1
49- docker cp ${file} ${CONTAINER} :${dest}
49+ local rename=$1
50+ shift
51+ local destdir=$1
52+ cp ${file} ${rename}
53+ tar -cf - ${rename} --mode u=+rw,g=+r,o=+r --owner root --group root | docker cp - ${CONTAINER} :${destdir}
5054 shift
5155 done
5256}
@@ -68,7 +72,7 @@ function start_test() {
6872 files=" ${files} $1 "
6973 shift
7074 done
71- echo " Running:$@ --name ${INSTANCE} -p ${PORT} :${HTTPS_LISTEN_PORT} ${TAG} "
75+ echo " Running: $@ --name ${INSTANCE} -p ${PORT} :${HTTPS_LISTEN_PORT} ${TAG} "
7276 bash -c " $@ --name ${INSTANCE} -d -p ${PORT} :${HTTPS_LISTEN_PORT} ${TAG} "
7377 # if files needed to be mounted in, the container stops immediately so start it again
7478 if [[ ${files} != " " ]]; then
@@ -87,7 +91,7 @@ echo "========"
8791echo " BUILD..."
8892echo " ========"
8993echo " travis_fold:start:BUILD"
90- docker build -t ${TAG} .
94+ docker build --build-arg GEOIP_ACCOUNT_ID= ${GEOIP_ACCOUNT_ID} --build-arg GEOIP_LICENSE_KEY= ${GEOIP_LICENSE_KEY} - t ${TAG} .
9195echo " travis_fold:end:BUILD"
9296
9397echo " Running mocking-server..."
@@ -114,8 +118,8 @@ echo "TESTING..."
114118echo " =========="
115119
116120start_test " Start with minimal settings" " ${STD_CMD} \
117- -e \" PROXY_SERVICE_HOST=http ://www.w3.org\" \
118- -e \" PROXY_SERVICE_PORT=80 \" "
121+ -e \" PROXY_SERVICE_HOST=https ://www.w3.org\" \
122+ -e \" PROXY_SERVICE_PORT=443 \" "
119123
120124echo " Test it's up and working..."
121125wget -O /dev/null --quiet --no-check-certificate https://${DOCKER_HOST_NAME} :${PORT} /
@@ -208,18 +212,18 @@ curl -s -I -X GET -k --compressed https://${DOCKER_HOST_NAME}:${PORT}/gzip | gre
208212start_test " Start with SSL CIPHER set and PROTOCOL" " ${STD_CMD} \
209213 -e \" PROXY_SERVICE_HOST=www.w3.org\" \
210214 -e \" PROXY_SERVICE_PORT=80\" \
211- -e \" SSL_CIPHERS=RC4-MD5 \" \
212- -e \" SSL_PROTOCOLS=TLSv1.1 \" "
213- echo " Test excepts defined protocol and cipher....."
214- docker run --link ${INSTANCE} :${INSTANCE} --rm --entrypoint bash ngx -c " echo GET / | /usr/bin/openssl s_client -cipher 'RC4-MD5 ' -tls1_1 -connect ${INSTANCE} :10443" & > /dev/null;
215+ -e \" SSL_CIPHERS=DHE-RSA-AES256-SHA \" \
216+ -e \" SSL_PROTOCOLS=TLSv1.2 \" "
217+ echo " Test accepts defined protocol and cipher....."
218+ docker run --link ${INSTANCE} :${INSTANCE} --rm --entrypoint bash ngx -c " echo GET / | /usr/bin/openssl s_client -cipher 'DHE-RSA-AES256-SHA ' -tls1_2 -connect ${INSTANCE} :10443" & > /dev/null;
215219
216220
217221
218222start_test " Start we auto add a protocol " " ${STD_CMD} \
219223 -e \" PROXY_SERVICE_HOST=www.w3.org\" \
220224 -e \" PROXY_SERVICE_PORT=80\" "
221225
222- echo " Test It works if we do not define the protocol.."
226+ echo " Test it works if we do not define the protocol.."
223227wget -O /dev/null --quiet --no-check-certificate https://${DOCKER_HOST_NAME} :${PORT} /
224228
225229
@@ -253,7 +257,7 @@ cd ./client_certs/
253257./sign_client_key_with_ca.sh
254258cd ..
255259start_test " Start with Client CA, and single proxy. Block unauth for /standards" \
256- " ${WORKDIR} /client_certs/ca.crt" " /etc/keys/client-ca " \
260+ " ${WORKDIR} /client_certs/ca.crt" " client-ca " " /etc/keys/" \
257261 " ${STD_CMD} \
258262 -e \" PROXY_SERVICE_HOST=http://www.w3.org\" \
259263 -e \" PROXY_SERVICE_PORT=80\" \
@@ -278,18 +282,20 @@ wget -O /dev/null --quiet --no-check-certificate https://${DOCKER_HOST_NAME}:${P
278282echo " Test upstream client certs..."
279283docker build -t mutual-tls:latest ${WORKDIR} -f docker-config/Dockerfile.mutual-tls
280284${STD_CMD} -d \
285+ -e " HTTP_LISTEN_PORT=10081" \
286+ -e " HTTPS_LISTEN_PORT=10444" \
281287 -e " PROXY_SERVICE_HOST=http://www.w3.org" \
282288 -e " PROXY_SERVICE_PORT=80" \
283289 -e " CLIENT_CERT_REQUIRED=TRUE" \
284- --name=" ${MUTUAL_TLS} " mutual-tls:latest
290+ -p 10444:10444 --name=" ${MUTUAL_TLS} " mutual-tls:latest
291+ docker run --link " ${MUTUAL_TLS} :${MUTUAL_TLS} " --rm martin/wait -p 10444
285292
286- docker run --link " ${MUTUAL_TLS} :${MUTUAL_TLS} " --rm martin/wait
287293start_test " Start with upstream client certs" \
288- " ${WORKDIR} /client_certs/client.crt" " /etc/keys/ upstream-client-crt" \
289- " ${WORKDIR} /client_certs/client.key" " /etc/keys/ upstream-client-key" \
294+ " ${WORKDIR} /client_certs/client.crt" " upstream-client-crt" " /etc/keys/ " \
295+ " ${WORKDIR} /client_certs/client.key" " upstream-client-key" " /etc/keys/ " \
290296 " ${STD_CMD} \
291297 -e \" PROXY_SERVICE_HOST=https://${MUTUAL_TLS} \" \
292- -e \" PROXY_SERVICE_PORT=10443 \" \
298+ -e \" PROXY_SERVICE_PORT=10444 \" \
293299 -e \" DNSMASK=TRUE\" \
294300 -e \" USE_UPSTREAM_CLIENT_CERT=TRUE\" \
295301 --link \" ${MUTUAL_TLS} :${MUTUAL_TLS} \" "
@@ -301,15 +307,18 @@ tear_down_container "${MUTUAL_TLS}"
301307echo " Test failure to verify upstream server cert..."
302308docker build -t standard-tls:latest ${WORKDIR} -f docker-config/Dockerfile.standard-tls
303309${STD_CMD} -d \
310+ -e " HTTP_LISTEN_PORT=10081" \
311+ -e " HTTPS_LISTEN_PORT=10444" \
304312 -e " PROXY_SERVICE_HOST=http://www.w3.org" \
305313 -e " PROXY_SERVICE_PORT=80" \
306- --name=" ${STANDARD_TLS} " standard-tls:latest
307- docker run --link " ${STANDARD_TLS} :${STANDARD_TLS} " --rm martin/wait
314+ -p 10444:10444 --name=" ${STANDARD_TLS} " standard-tls:latest
315+ docker run --link " ${STANDARD_TLS} :${STANDARD_TLS} " --rm martin/wait -p 10444
316+
308317start_test " Start with failing upstream server verification" \
309- " ${WORKDIR} /client_certs/ca.crt" " /etc/keys/ upstream-server-ca" \
318+ " ${WORKDIR} /client_certs/ca.crt" " upstream-server-ca" " /etc/keys/ " \
310319 " ${STD_CMD} \
311320 -e \" PROXY_SERVICE_HOST=https://${STANDARD_TLS} \" \
312- -e \" PROXY_SERVICE_PORT=10443 \" \
321+ -e \" PROXY_SERVICE_PORT=10444 \" \
313322 -e \" DNSMASK=TRUE\" \
314323 -e \" VERIFY_SERVER_CERT=TRUE\" \
315324 --link \" ${STANDARD_TLS} :${STANDARD_TLS} \" "
@@ -328,17 +337,19 @@ cd ./client_certs/
328337./sign_server_key_with_ca.sh
329338cd ..
330339${STD_CMD} -d \
340+ -e " HTTP_LISTEN_PORT=10081" \
341+ -e " HTTPS_LISTEN_PORT=10444" \
331342 -e " PROXY_SERVICE_HOST=http://www.w3.org" \
332343 -e " PROXY_SERVICE_PORT=80" \
333- --name=" ${STANDARD_TLS} " ${TAG}
334-
344+ -p 10444:10444 --name=" ${STANDARD_TLS} " ${TAG}
335345docker start ${STANDARD_TLS}
336- docker run --link " ${STANDARD_TLS} :${STANDARD_TLS} " --rm martin/wait
346+ docker run --link " ${STANDARD_TLS} :${STANDARD_TLS} " --rm martin/wait -p 10444
347+
337348start_test " Start with succeeding upstream server verification" \
338- " ${WORKDIR} /client_certs/ca.crt" " /etc/keys/ upstream-server-ca" \
349+ " ${WORKDIR} /client_certs/ca.crt" " upstream-server-ca" " /etc/keys/ " \
339350 " ${STD_CMD} \
340351 -e \" PROXY_SERVICE_HOST=https://${STANDARD_TLS} \" \
341- -e \" PROXY_SERVICE_PORT=10443 \" \
352+ -e \" PROXY_SERVICE_PORT=10444 \" \
342353 -e \" DNSMASK=TRUE\" \
343354 -e \" VERIFY_SERVER_CERT=TRUE\" \
344355 --link \" ${STANDARD_TLS} :${STANDARD_TLS} \" "
0 commit comments