Commit fe9774b4 authored by benedikt.kroening's avatar benedikt.kroening
Browse files

some readme cleanup

further docker removal
parent d686adae
......@@ -8,7 +8,7 @@ By default this will install a singlenode environment consisting of:
## Configuration
Basic Configuration is located inside the file `config/config`.
Basic Configuration is located inside the files `config/config` and `config/config.extended` .
Most options can be overriden by using each shell-scripts parameters (sometimes described in the help text)
## Context configuration
......@@ -17,24 +17,6 @@ You can configure the context that will be created later on by either modifying
In case of creating your own environment you have to manually call `config/environment/create-context.sh --environment <foobar>` since the qa context is currently hardcoded in case it is enabled in the config.
### Docker configuration
The docker configuration is located at `docker/config` and will override values from the above default config.
You may also override config by providing environmental variables.
There are some additional configuration variable used for docker-compose which are located at the repositories root (`.env`). These variables include:
- `OX_VERSION` - This is used when building the images. Every built image will be tagged with this String (e.g. 7.10.3)
- `OX_BASE_DISTRIBUTION` - The linux distribution to be used inside the docker images. Every used image is based on this (ox-base, this iamge gets tagged as well)
- `OX_BASE_RELEASE` - The distributions release (e.g. Stretch or buster)
- `OX_RUNTIME_DATA_PATH` - The location where docker-compose will store its data. This location is by default unter `docker/.runtime` but its recommended to put this outside of the git repo.
The docker-compose environment is able to persist its data across restarts and recreations. Everytime a container gets recreated it fetches the required configuration from the consul. This includes databases IDs, oxguardpass and some flags used for determining the current clusters init state.
*IMPORTANT:* Recreating frontend or middleware nodes works without caution. For the database you have to ensure a gracefull shutdown (or enable the periodic database dump).
To shut it down properly execute: `docker-compose down -v`
You can use consul to observe the init process when starting the environment. In addition to that you can use it to rudimentary monitor the services health.
It is located at `http://localhost:8500`
## Versions
Versions can be configured at `setup/versions`
......@@ -85,37 +67,3 @@ Take a look at the features/ direcotry for the feature related scripts. These sc
If some feature script is missing you may want to take a look at the `features/feature-template.sh` for more information on how to add your own feature.
In order to keep everything clean please try to adapt to that file layout. Also keep in mind that the ox-installer.sh only will install the feature related components.
Feature init is done while the init scripts are executed (`config/middleware/25_init-features.sh`). That way the setup and actual node init/config is seperated into their own steps ...
## Docker
This installer supports creation of Open-Xchange docker images. These images will use supervisord as process monitor.
Right now it creates a simple groupware image (apache2, ox frontend, ox middleware). Seperate mail and database services are required.
Take a look at the docker-compose.yml at the root level of this repo.
### Build docker images
The installer script can be used as it is for docker environments. Take a look into the docker/ directory for some examples.
You can configure these environments by editing the `docker/config` file.
The images can be build by executing docker-composes build action:
`$ docker-compose build `
This will automatically install OX App Suite, Guard (documents with its several features will be added soon, this is wip).
The image will be tagged with the `OX_VERSION` tag (located at `.env`) on each rebuild...
### Start it
If you have docker-compose available you can use it to start the provided compose-environment, but make sure to be in the correct directory.
`$ docker-compose up`
Any runtime related files will be stored at `<repo>/docker/.runtime`
### Stop it
`$ docker-compose down -v`
### Clean it up
`$ rm -fr docker/.runtime/`
#
# Copyright (C) 2019 OX Software GmbH
#
# This file is part of OX Automation.
#
# OX Automation is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OX Automation is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OX Automation. If not, see <http://www.gnu.org/licenses/>.
#
#
# Authors:
# Benedikt Kroening <benedikt.kroening@open-xchange.com>
#
# IMPORTANT:
# This compose file uses variable substitution
# https://docs.docker.com/compose/compose-file/#variable-substitution
# check ".env"-file for docker-compose defaults
version: '3.7'
services:
# This service is used for cluster orchestartion
consul:
build:
context: .
dockerfile: docker/base/Dockerfile
args:
OX_BASE_DISTRIBUTION: ${OX_BASE_DISTRIBUTION}
OX_BASE_RELEASE: ${OX_BASE_RELEASE}
image: ox-base:${OX_VERSION}
hostname: consul
command: consul-server
volumes:
- "${OX_RUNTIME_DATA_PATH}/opt/consul/data:/opt/consul/data"
ports:
- 8500:8500
networks:
- internal-net
frontend:
build:
context: .
dockerfile: docker/frontend/Dockerfile
args:
OX_VERSION: ${OX_VERSION}
image: open-xchange-frontend:${OX_VERSION}
env_file: docker/config
ports:
- 80:80
- 443:443
networks:
- internal-net
middleware:
build:
context: .
dockerfile: docker/middleware/Dockerfile
args:
OX_VERSION: ${OX_VERSION}
image: open-xchange-middleware:${OX_VERSION}
env_file: docker/config
environment:
- OX_INIT=true
volumes: # for quick testing you may want to export the middleware nodes etc directory
- "${OX_RUNTIME_DATA_PATH}/var/opt/filestore:/var/opt/filestore"
networks:
- internal-net
database:
image: "gitlab.open-xchange.com:4567/docker/infrastructure/database:mysql-dumping"
stop_grace_period: 2m
volumes:
- "${OX_RUNTIME_DATA_PATH}/mysql-dump:/mysql-dump"
ports:
- 3306:3306
- 33060:33060
restart: always
networks:
- internal-net
networks:
internal-net:
ipam:
config:
- subnet: 172.30.0.0/16
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment