a5f9077e5a
Shrink docker image. Update from fig (deprecated) to docker-compose. Update README.md. Signed-off-by: Tiago Pires <tandrepires@gmail.com> |
||
---|---|---|
.. | ||
blocks | ||
docker | ||
templates | ||
assemble_blocks.sh | ||
README.md |
Docker
TOOLS ARE WRITTEN FOR TESTING AND TO SEE WHAT IT IS!
For this to work you will need the nifty docker tool docker-compose.
The most simple setup will look like this:
./assemble_blocks.sh docker_gogs w_db option_db_mysql
docker-compose 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 docker-compose
.
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 docker-compose
file will just be added to docker-compose.yml
, which is used by docker-compose to manage your containers.
This includes 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`, `docker-compose` 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:
./assemble_blocks.sh docker_gogs w_db_cache option_db_mysql option_cache_redis
More sophisticated Example
Here is a more elaborated example
./assemble_blocks.sh docker_gogs w_db_cache_session option_db_postgresql option_cache_redis option_session_mysql
docker-compose up
This will set up four containters and link them proberly. One for each of
docker-compose
- 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 docker-compose 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
./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