Skip to content

Commit d5494d1

Browse files
authored
Merge pull request #1080 from Koen1999/master
Created a working Docker image for production and development
2 parents 77aa052 + 7aab596 commit d5494d1

File tree

90 files changed

+14004
-4383
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+14004
-4383
lines changed

.dockerignore

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
*~
2+
*autoload_classmap.php
3+
*.gitignore
4+
*.kate-swp
5+
*.log
6+
.*.DS_Store
7+
.*.sw?
8+
._*
9+
.buildpath
10+
.editorconfig
11+
.env
12+
.env.dist
13+
.git/
14+
.gitattributes
15+
.idea/
16+
.mysql/
17+
.project
18+
.sass-cache/
19+
.scannerwork/
20+
.settings
21+
Vagrantfile
22+
.vagrant/
23+
.vs/
24+
.~lock.*
25+
Makefile
26+
autoload_classmap.php
27+
composer.phar
28+
config/autoload/doctrine.local.php
29+
config/autoload/doctrine.external.php
30+
config/autoload/gewisdb.local.php
31+
config/autoload/local.php
32+
config/autoload/zdt.local.php
33+
data/cache/*
34+
data/DoctrineORMModule/
35+
data/keys/jwt-key
36+
data/keys/jwt-key.pub
37+
data/logs/*
38+
data/mail/*
39+
docker/glide/
40+
docker/nginx/
41+
Dockerfile
42+
docker-compose.*
43+
gewisweb-vagrant/
44+
nbproject
45+
node_modules/
46+
public/css/gewis-theme.css
47+
public/css/gewis-theme.css.map
48+
public/data/education_temp_exams/
49+
public/data/education_temp_summaries/
50+
public/data/meeting-documents/
51+
public/data/meeting-notes/
52+
public/data/photo/
53+
public/styleguide/
54+
vendor/

.env.dist

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Zend settings
2+
# Use production or development
3+
APP_ENV=production
4+
5+
# Address for the Glide image server. Set to https://images.gewis.nl for production deployment behind nginx
6+
GLIDE_HOST=http://localhost:81
7+
# Signing key for the Glide image server
8+
GLIDE_KEY='v-LK4WCdhcfcc%jt*VC2cj%nVpu+xQKvLUA%H86kRVk_4bgG8&CWM#k*b_7MUJpmTc=4GFmKFp7=K%67je-skxC5vz+r#xT?62tT?Aw%FtQ4Y3gvnwHTwqhxUh89wCa_'
9+
10+
# Nginx settings
11+
# Use off or "\"Restricted\"" (or another escaped string); also required an entry in docker/nginx/.htpasswd
12+
NGINX_REQUIRE_AUTH=off
13+
14+
# Mail settings for production (postfix)
15+
SMTP_SERVER=mail.gewis.nl
16+
SMTP_PORT=587
17+
SMTP_USERNAME=service-web@gewis.nl
18+
SMTP_PASSWORD=gewis
19+
SERVER_HOSTNAME=gewis.nl
20+
21+
# Google Calendar API (Option Calendar) settings
22+
DOCKER_GOOGLE_API_KEY=unknown
23+
DOCKER_GOOGLE_CALENDAR_KEY=unknown
24+
25+
# These are the environment variabled for the databse used for all application data
26+
DOCKER_DB_HOST=mysql
27+
DOCKER_DB_PORT=3306
28+
DOCKER_DB_USERNAME=gewis
29+
DOCKER_DB_PASSWORD=gewis
30+
DOCKER_DB_DATABASE=gewis
31+
32+
# These are the environment variabled for retrieving membership data (and others) from the gewisdb project
33+
DOCKER_DB2_HOST=postgres
34+
DOCKER_DB2_PORT=5432
35+
DOCKER_DB2_USERNAME=username
36+
DOCKER_DB2_PASSWORD=password
37+
DOCKER_DB2_DATABASE=database
38+
39+
# These are the environment variables for PhpMyAdmin, only used in docker-compose.override.yaml for development
40+
PMA_HOST=mysql
41+
PMA_USER=gewis
42+
PMA_PASSWORD=gewis
43+
44+
# These are the environment variables for MySQL, only used in docker-compose.override.yaml for development
45+
MYSQL_ROOT_PASSWORD=gewis
46+
MYSQL_DATABASE=gewis
47+
MYSQL_USER=gewis
48+
MYSQL_PASSWORD=gewis
49+
MYSQL_ALLOW_EMPTY_PASSWORD='yes'

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
* text=auto eol=lf
2+

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@ nbproject
33
.~lock.*
44
.*.sw?
55
*~
6+
*.kate-swp
67
.buildpath
7-
.DS_Store
8+
*.DS_Store
9+
.env
810
.idea
911
.project
1012
.settings
1113
vendor/
1214
gewisweb-vagrant/
1315
node_modules/
1416
.sass-cache/
17+
.scannerwork/
1518
public/css/gewis-theme.css
1619
public/css/gewis-theme.css.map
1720
public/styleguide/

.travis.yml

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,43 @@
11
language: php
2-
sudo: false
3-
php:
4-
- 5.6
5-
- 7.0
6-
7-
env:
8-
- APP_ENV=development
9-
2+
os: linux
3+
4+
cache:
5+
apt: true
6+
ccache: true
7+
directories:
8+
- $HOME/.composer/
9+
10+
jobs:
11+
include:
12+
- name: "PHP 5.6 Production"
13+
php: 5.6
14+
env: APP_ENV=production
15+
- name: "PHP 5.6 Development"
16+
php: 5.6
17+
env: APP_ENV=development
18+
- name: "PHP 7.0 Production"
19+
php: 7.0
20+
env: APP_ENV=production
21+
- name: "PHP 7.0 Development"
22+
php: 7.0
23+
env: APP_ENV=development
24+
- name: "PHP 7.4 Production"
25+
php: 7.4
26+
env: APP_ENV=production
27+
- name: "PHP 7.4 Development"
28+
php: 7.4
29+
env: APP_ENV=development
30+
- name: "PHP 8.0 Production"
31+
php: 8.0
32+
env: APP_ENV=production
33+
- name: "PHP 8.0 Development"
34+
php: 8.0
35+
env: APP_ENV=development
36+
37+
1038
before_script:
11-
- composer install --prefer-source --ignore-platform-reqs
39+
- composer install --prefer-source --ignore-platform-reqs
40+
- ./genclassmap.sh
1241

1342
script:
14-
- (if (./web orm:validate-schema --no-ansi --no-interaction | grep -q "\[Mapping\] FAIL"); then exit 1; else exit 0; fi)
43+
- (if (./web orm:validate-schema --no-ansi --no-interaction | grep -q "\[Mapping\] FAIL"); then exit 1; fi)

Makefile

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
.PHONY: help runprod rundev updatecomposer updatepackage build buildprod builddev login push pushprod pushdev update all prod dev
2+
3+
help:
4+
@echo "Makefile commands:"
5+
@echo "runprod"
6+
@echo "rundev"
7+
@echo "updatecomposer"
8+
@echo "updatepackage"
9+
@echo "updatecss"
10+
@echo "updateglide"
11+
@echo "getvendordir"
12+
@echo "replenish"
13+
@echo "build"
14+
@echo "buildprod"
15+
@echo "builddev"
16+
@echo "login"
17+
@echo "push"
18+
@echo "pushprod"
19+
@echo "pushdev"
20+
@echo "update = updatecomposer updatepackage updatecss updateglide"
21+
@echo "all = build login push"
22+
@echo "prod = buildprod login pushprod"
23+
@echo "dev = builddev login pushdev"
24+
25+
.DEFAULT_GOAL := all
26+
27+
runprod:
28+
@docker-compose -f docker-compose.yml up -d --force-recreate --remove-orphans
29+
30+
runprodtest: buildprod
31+
@docker-compose -f docker-compose.yml up -d --force-recreate --remove-orphans
32+
33+
rundev: builddev
34+
@docker-compose up -d --force-recreate --remove-orphans
35+
36+
getvendordir: rundev
37+
@rm -Rf vendor
38+
@docker cp "$(shell docker-compose ps -q web)":/code/vendor ./vendor
39+
@docker-compose down
40+
41+
replenish: rundev
42+
@docker cp ./public "$(shell docker-compose ps -q web)":/code
43+
@docker-compose exec web chown -R www-data:www-data /code/public
44+
@docker cp ./data "$(shell docker-compose ps -q web)":/code
45+
@docker-compose exec web chown -R www-data:www-data /code/data
46+
@docker-compose down
47+
48+
update: rundev updatecomposer updatepackage updatecss updateglide
49+
@docker-compose down
50+
51+
updatecomposer:
52+
@docker-compose exec web php composer.phar selfupdate
53+
@docker-compose exec -T web cat composer.phar > composer.phar
54+
@docker-compose exec web php composer.phar update
55+
@docker-compose exec -T web cat composer.lock > composer.lock
56+
57+
updatepackage:
58+
@docker-compose exec web npm update
59+
@docker-compose exec -T web cat package-lock.json > package-lock.json
60+
61+
updatecss:
62+
@docker-compose exec web npm run scss
63+
@docker-compose exec -T web cat public/css/gewis-theme.css > public/css/gewis-theme.css
64+
65+
updateglide:
66+
@docker-compose exec glide php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
67+
@docker-compose exec glide php composer-setup.php
68+
@docker-compose exec glide php -r "unlink('composer-setup.php');"
69+
@docker-compose exec web php composer.phar selfupdate
70+
@docker-compose exec -T web cat composer.phar > composer.phar
71+
@docker-compose exec glide php composer.phar update
72+
@docker-compose exec -T glide cat composer.lock > docker/glide/composer.lock
73+
74+
all: build login push
75+
76+
prod: buildprod login pushprod
77+
78+
dev: builddev login pushdev
79+
80+
build: buildweb buildglide buildnginx
81+
82+
buildprod: buildwebprod buildglide buildnginx
83+
84+
builddev: buildwebdev buildglide buildnginx
85+
86+
buildweb: buildwebprod buildwebdev
87+
88+
buildwebprod:
89+
@docker build -t web.docker-registry.gewis.nl/gewisweb_web:production -f docker/web/production/Dockerfile .
90+
91+
buildwebdev:
92+
@docker build -t web.docker-registry.gewis.nl/gewisweb_web:development -f docker/web/development/Dockerfile .
93+
94+
buildglide:
95+
@docker build -t web.docker-registry.gewis.nl/gewisweb_glide:latest -f docker/glide/Dockerfile docker/glide
96+
97+
buildnginx:
98+
@docker build -t web.docker-registry.gewis.nl/gewisweb_nginx:latest -f docker/nginx/Dockerfile docker/nginx
99+
100+
login:
101+
@docker login web.docker-registry.gewis.nl
102+
103+
push: pushweb pushglide pushnginx
104+
105+
pushprod: pushwebprod pushglide pushnginx
106+
107+
pushdev: pushwebdev pushglide pushnginx
108+
109+
pushweb: pushwebprod pushwebdev
110+
111+
pushwebprod:
112+
@docker push web.docker-registry.gewis.nl/gewisweb_web:production
113+
114+
pushwebdev:
115+
@docker push web.docker-registry.gewis.nl/gewisweb_web:development
116+
117+
pushglide:
118+
@docker push web.docker-registry.gewis.nl/gewisweb_glide:latest
119+
120+
pushnginx:
121+
@docker push web.docker-registry.gewis.nl/gewisweb_nginx:latest

Vagrantfile

Lines changed: 0 additions & 79 deletions
This file was deleted.

0 commit comments

Comments
 (0)