Skip to content
Snippets Groups Projects
Commit ead41f27 authored by benedikt.kroening's avatar benedikt.kroening
Browse files

Docker fixes for singlenode

Moved docker-compose singlenode file to the repo root
removed docker build script as it is not really needed
Enabled Java setup flag which was missing for docker
parent 38365e8e
No related branches found
No related tags found
1 merge request!7Issue16 7102
...@@ -23,12 +23,11 @@ ...@@ -23,12 +23,11 @@
# #
version: '3.7' version: '3.7'
services: services:
database: database:
image: "gitlab.open-xchange.com:4567/docker/infrastructure/database:mysql-dumping" image: "gitlab.open-xchange.com:4567/docker/infrastructure/database:mysql-dumping"
stop_grace_period: 2m stop_grace_period: 2m
volumes: volumes:
- "${PWD}/.runtime/mysql-dump:/mysql-dump" - "${PWD}/docker/singlenode/.runtime/mysql-dump:/mysql-dump"
ports: ports:
- 3306:3306 - 3306:3306
- 33060:33060 - 33060:33060
...@@ -36,13 +35,16 @@ services: ...@@ -36,13 +35,16 @@ services:
networks: networks:
- internal-net - internal-net
singlenode: singlenode:
build:
context: .
dockerfile: docker/singlenode/Dockerfile
image: singlenode:latest image: singlenode:latest
env_file: config env_file: docker/singlenode/config
depends_on: depends_on:
- database - database
volumes: # for quick testing you may want to export the middleware nodes etc directory volumes: # for quick testing you may want to export the middleware nodes etc directory
- "${PWD}/.runtime/var/opt/filestore:/var/opt/filestore" - "${PWD}/docker/singlenode/.runtime/var/opt/filestore:/var/opt/filestore"
- "${PWD}/.runtime/spool/middleware/uploads:/var/spool/open-xchange/uploads" - "${PWD}/docker/singlenode/.runtime/spool/middleware/uploads:/var/spool/open-xchange/uploads"
ports: ports:
- 80:80 - 80:80
- 443:443 - 443:443
...@@ -63,19 +65,11 @@ services: ...@@ -63,19 +65,11 @@ services:
- ENV_SUBNET=172.30.0.0/16 - ENV_SUBNET=172.30.0.0/16
- MAIL_DEBUG_LOG=0 - MAIL_DEBUG_LOG=0
volumes: volumes:
- "${PWD}/.runtime/home/vmail:/home/vmail" - "${PWD}/docker/singlenode/.runtime/home/vmail:/home/vmail"
networks: networks:
- "internal-net" - "internal-net"
restart: always restart: always
test-container:
image: 'gitlab.open-xchange.com:4567/docker/infrastructure/testing-codecept:ox-installer'
env_file: config
volumes:
- "${PWD}/.runtime/test-results/codeceptjs:/opt/open-xchange/tests/results/codeceptjs"
- "${PWD}/.runtime/test-results/postman:/opt/open-xchange/tests/results/postman"
networks:
- internal-net
entrypoint: /opt/open-xchange/tests/ox_installer.sh
selenium-chrome: selenium-chrome:
image: selenium/standalone-chrome:3.141.59-titanium image: selenium/standalone-chrome:3.141.59-titanium
hostname: selenium-chrome-develop hostname: selenium-chrome-develop
...@@ -95,3 +89,12 @@ networks: ...@@ -95,3 +89,12 @@ networks:
config: config:
- subnet: 172.30.0.0/16 - subnet: 172.30.0.0/16
#test-container:
# image: 'gitlab.open-xchange.com:4567/docker/infrastructure/testing-codecept:ox-installer'
#env_file: config
# volumes:
#- "${PWD}/.runtime/test-results/codeceptjs:/opt/open-xchange/tests/results/codeceptjs"
#- "${PWD}/.runtime/test-results/postman:/opt/open-xchange/tests/results/postman"
#networks:
#- internal-net
#entrypoint: /opt/open-xchange/tests/ox_installer.sh
\ No newline at end of file
#!/bin/bash
#
# 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>
#
set -e
SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)"
source ${SCRIPT_DIR}/../lib/common.bash
## Help text
show_usage() {
echo -n "
Build docker images with the help of the ox-installer scripts.
NOTE: Review the configuration used in the respective folder: singlenode/config or cluster/config
Easiest way to get a working image:
$ ${0}
Per component options (can be combined):
Installation types (not combineable):
--singlenode This will install and init an basic OX instance (db, mw, fe)
--cluster This will create several images for deploying some docker-compose cluster
Configuration options:
Examples:
"
}
### reading config from command line; overriding defaults
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
show_usage
exit 0
shift
;;
--debug)
echo "WARNING: Debug flag set (--debug)"
set -x
shift
;;
# -t|--type)
# INSTALL_TYPE="$2"
# shift
# shift
# ;;
--middleware)
export INSTALL_MIDDLEWARE=true
shift
;;
--frontend)
export INSTALL_FRONTEND=true
shift
;;
--guard)
export INSTALL_GUARD=true
shift
;;
--documents)
export INSTALL_DOCUMENTS=true
shift
;;
--documentconverter)
export INSTALL_DOCUMENTCONVERTER=true
shift
;;
-s|--singlenode)
export INSTALL_TYPE=singlenode
shift
;;
--cluster)
export INSTALL_TYPE=cluster
shift
;;
*) # unknown option
echo "Unknonwn option: $1"
POSITIONAL+=("$1") # save it in an array for later
shift
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
if [[ -z "${INSTALL_TYPE}" ]]; then
echo "No build type was specified. (either singlenode or cluster)"
#export INSTALL_TYPE=singlenode
exit 99
fi
# sourcing Versions to use from file for tagging
exportProperties ${SCRIPT_DIR}/../setup/versions
echo "Config to be used:"
echo "============================================"
grep -v '^#' ${SCRIPT_DIR}/${INSTALL_TYPE}/config
echo "============================================"
echo "NOTE: You may want to review the configuration: ${SCRIPT_DIR}/${INSTALL_TYPE}/config before building the images!"
echo "CTRL+C to cancel ..."
echo ""
sleep 3
STARTED_AT=$(date)
if [[ "${INSTALL_TYPE}" == "singlenode" ]]; then
# ensure that all components will be "force" installed if on singlenode
exportProperties ${SCRIPT_DIR}/singlenode/config
docker build --no-cache --rm \
-f ${SCRIPT_DIR}/singlenode/Dockerfile \
-t singlenode:${AS_BACKEND_VERSION} ${SCRIPT_DIR}/../
docker tag singlenode:${AS_BACKEND_VERSION} singlenode:latest
elif [[ "${INSTALL_TYPE}" == "cluster" ]]; then
# TODO: propper image tag versioning
exportProperties ${SCRIPT_DIR}/cluster/config
echo "Building OX frontend image ..."
docker build --no-cache --rm -f ${SCRIPT_DIR}/cluster/frontend.Dockerfile -t open-xchange-frontend${AS_BACKEND_VERSION} ${SCRIPT_DIR}/../
echo "Building OX middleware image ..."
docker build --no-cache --rm -f ${SCRIPT_DIR}/cluster/middleware.Dockerfile -t open-xchange-middleware${AS_BACKEND_VERSION} ${SCRIPT_DIR}/../
else
# let the environment variables do the selection magic
echo "Not yet implemented"
exit 99
fi
echo ""
# pushd ${SCRIPT_DIR}/..
# popd
FINISHED_AT=$(date)
echo "====================================================================================="
echo "Started at: $STARTED_AT"
echo "Finished at: $FINISHED_AT"
...@@ -34,6 +34,7 @@ INSTALL_FRONTEND=true ...@@ -34,6 +34,7 @@ INSTALL_FRONTEND=true
INSTALL_GUARD=true INSTALL_GUARD=true
INSTALL_DOCUMENTS=true INSTALL_DOCUMENTS=true
INSTALL_DOCUMENTCONVERTER=true INSTALL_DOCUMENTCONVERTER=true
INSTALL_JAVA=true
INSTALL_TYPE=docker-singlenode INSTALL_TYPE=docker-singlenode
OX_ENV_QA=true OX_ENV_QA=true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment