Inspired by the tagging of e.g. `node` on dockerhub:
https://hub.docker.com/_/node/?tab=description
I would like to push the current version of all our images to dockerhub.
This is a first step to push to production later on.
If sb. increments the VERSION file, this is considered a release.
https://github.com/Human-Connection/Human-Connection/pull/1543#pullrequestreview-287593264
Thinking about it, I really ask myself why I did not find this solution
earlier 🙈
Of course, you don't want to share the generated `buildDir`
with the host system. If you happen to share the `webapp/` folder,
simply point NuxtJS to a build directory somewhere else. Easy!
* Use `production` docker images for cypress tests. As one of our contributors
pointed out: It is bad practice to end-to-end test sth. else than the actual
production images.
* Have a dedicated `docker-compose.travis-integration.yml` to test
backend integration tests. The backend *needs* a database when doing
integration tests. So there is no way around using docker-compose. But
we could stop using the `build-and-test` stage when we do cypress tests.
* Remove a couple of unused ports and DRY `docker-compose.override.yml`
* Build and tag all images first and then run `docker-compose .. up` - I
hope this will not rebuild the image.
* Reduce docker image size
Here are the issues
* webapp was built with `NODE_ENV=production` but started with
`NODE_ENV=development`
* using the provided `docker-compose.travis.yml` the command `yarn run
start` would look in the wrong folder
* removed duplicate environment definition
NuxtJS wants to write into .nuxt. If the docker container writes into
.nuxt it will have the file permissions of the docker container user
even on the host system. So on the host system you cannot remove the
folder .nuxt anymore. This gets in the way of running NuxtJS on the host
system.