diff options
author | Tristan Storch <tstorch@math.uni-bielefeld.de> | 2014-08-29 18:20:15 +0200 |
---|---|---|
committer | Tristan Storch <tstorch@math.uni-bielefeld.de> | 2014-08-31 21:00:19 +0200 |
commit | d1a2228f1cc1b0bec7023d226077e4002c07112a (patch) | |
tree | 7eed4c06a198972dd907806bb1df8c3c2f1a45d5 /docker/README.md | |
parent | 2886eb76b69102f7c2fc7db3516567c677148057 (diff) | |
download | gitea-d1a2228f1cc1b0bec7023d226077e4002c07112a.tar.gz gitea-d1a2228f1cc1b0bec7023d226077e4002c07112a.zip |
Docker mix and match setup
Rewrite of the docker setup. Now uses fig to manage containers and container
linkage. The base is a block based mix and match, which will give you the
possibility to easily test all configurations.
Diffstat (limited to 'docker/README.md')
-rw-r--r-- | docker/README.md | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000000..448912009c --- /dev/null +++ b/docker/README.md @@ -0,0 +1,89 @@ +Docker +====== + +TOOLS ARE WRITTEN FOR TESTING AND TO SEE WHAT IT IS! + +For this to work you will need the nifty docker tool [fig]. + +The most simple setup will look like this: + +```sh +./assemble_blocks.sh docker_gogs w_db option_db_mysql +fig up + +``` + +That's it. You have GoGS running in docker linked to a MySQL docker container. + +Now visit http://localhost:3000/ and give details for the admin account an you're up and running. + + +How does it work +---------------- + +`./assemble_blocks.sh` will look in `blocks` for subdirectories. +In the subdirectories there are three relevant files: `Dockerfile`, `config` and `fig`. + +`Dockerfile` will be copied to `docker/` (also means last `Dockerfile` wins). + +The `config` file contains lines which will in the gogs docker container end up in `$GOGS_PATH/custom/config/app.ini` and by this gogs will be configured. +Here you can define things like the MySQL server for your database block. + +The `fig` file will just be added to `fig.yml`, which is used by fig to manage your containers. +This inculdes container linking! + +Just have a look at them and it will be clear how to write your own blocks. + +Just some things + + - all files (`Dockerfile`, `fig` and `config`) are optional + - the gogs block should always be the first block + +Currently the blocks are designed that, the blocks that start with `docker` pull in the base docker image. +Then one block starting with `w` defines, what containers should be linked to the gogs container. +For every option in the `w` block you need to add an `option` container. + +Example: + +```sh +./assemble_blocks.sh docker_gogs w_db_cache option_db_mysql option_cache_redis +``` + + +More sophisticated Example +-------------------------- + +Her is a more elaborated example + +```sh +./assemble_blocks.sh docker_gogs w_db_cache_session option_db_postgresql option_cache_redis option_session_mysql +fig up +``` + +This will set up four containters and link them proberly. One for each of + + - gogs + - database (postgresql) + - cache (redis) + - session (mysql) + +WARNING: This will not work at the Moment! MySQL session is broken! + + +Remark +------ + +After you execute `assemble_blocks.sh` you should always trigger `fig build` to inculde the the new init script `init_gogs.sh` in the docker image. + +If you want to use another GoGS docker file, but keep everything else the same, you can create a block, e.g. `docker_gogs_custom`, with only a `Dockerfile` and call + +```sh +./assemble_blocks.sh docker_gogs_custom w_db option_database_mysql +``` + +This will pull in the `Dockerfile` from `docker_gogs` instead of the one from `docker_gogs`. + +`Dockerfile`s for the `master` and `dev` branch are provided as `docker_gogs` and `docker_gogs_dev` + + +[fig]:http://www.fig.sh/
\ No newline at end of file |