* Create rolling releases using the Gitlab API.
This commit builds rolling releases of Container images using the latest commit
on master branch if the pipeline passed for it. The script which gets the
references is still un-tested and should be tested.
The latest commit hashes are passed as arguments to the Dockerfile, which is
then used by PIP to install the specific version of the dependency.
Even though the 'master.lck' is supposed to prevent race conditions, it needs to
be manually removed if the container did not shutdown gracefully. Remove the
manual check for the lock file and force mailman to remove it.
Also, set the stop_grace_period to 30s, which would allow Core to stop
gracefully and not leave the lock file over. Default value in case of Docker is 10s.
Several Changes:
- Uwsgi now listens on two sockets 8080 for http protocol and 8000 for uwsgi protocol
- Add a read_timeout in documentation for Nginx configuration
- Expose 8024 properly in Core image
- Expose 8080 and 8000 both in Web image
- Rearange the commands to get even less number of layers.
- Add SIGINT as stop signal in web because uwsgi needs it shut down gracefully
- Enable threads in default uwsgi configuration
Fix#64, Fix#15
* Run as mailman user.
* Run mailman core process as a less-privileged mailman user.
* Add a `docker ps` to travis to know if any container died.
* Spit out more debug information in CI.
* Install su-exec properly.
Removing the build-deps package in a different layer doesn't really help because
of the way layered file systems work. They will exist in the image but appear to
be removed by whiteout files or something. This commit should reduce the size of
the mailman-core image considerably.
`mailman start` command does not nothing but parses the configuration and starts
the appropriate runners. The start command is implemented such that it forks the
master runner, which in-turn starts the all the rest of the runners. It turns
out that `master` is also exported as an console script which can directly be
started instead of running `mailman start` command. This makes containerizing
mailman much more easier.
- Add configuration for exim to work with mailman core.
- Add configuration to enable hyperkitty in mailman core.
- Add configuration to enable mailman_hyperkitty plugin.
- Add mailman_hyperkitty plugin and ipython in the core container.
- Set environemnt variables for Postgresql database in the compose file
- Set environment variables for uwsgi in the compose file
- Check if the postgresql container is up and accepting connections before
running any actual services.
This commit adds a lot of new code including the mailman's web
frontend. It includes a configuration file which can later be
configured to run required configs.
Also, the docker-compose file spins off the containers, sets up
appropriate volumes and links.