mirror of
https://github.com/zokradonh/kopano-docker
synced 2025-06-06 15:36:40 +00:00
add Vagrantfile for easy local test/dev deployment (#394)
* add Vagrantfile for easy local test/dev deployment * add exception to editorconfig * Update README.md * update ci tools * add jq to setup ci script
This commit is contained in:
parent
87de275e9f
commit
05230d1c0a
@ -3,12 +3,13 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
COMMANDER_VERSION=1.2.1
|
COMMANDER_VERSION=2.0.0
|
||||||
DOCKER_COMPOSE_VERSION=1.23.2
|
DOCKER_COMPOSE_VERSION=1.25.5
|
||||||
GOSS_VERSION=0.3.7
|
GOSS_VERSION=0.3.11
|
||||||
HADOLINT_VERSION=1.17.1
|
HADOLINT_VERSION=1.17.6
|
||||||
REG_VERSION=0.16.1
|
REG_VERSION=0.16.1
|
||||||
TRIVY_VERSION=0.1.1
|
SHELLCHECK_VERSION=0.7.1
|
||||||
|
TRIVY_VERSION=0.6.0
|
||||||
|
|
||||||
progname=$(basename "$0")
|
progname=$(basename "$0")
|
||||||
tempdir=$(mktemp -d "/tmp/$progname.XXXXXX")
|
tempdir=$(mktemp -d "/tmp/$progname.XXXXXX")
|
||||||
@ -78,5 +79,15 @@ if ! command -v npm > /dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v eclint > /dev/null; then
|
if ! command -v eclint > /dev/null; then
|
||||||
npm install -g eclint
|
npm install eclint -g
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! command -v shellcheck > /dev/null; then
|
||||||
|
wget "https://github.com/koalaman/shellcheck/releases/download/v$SHELLCHECK_VERSION/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz"
|
||||||
|
tar -xf shellcheck-v*.linux.x86_64.tar.xz
|
||||||
|
sudo mv shellcheck-v*/shellcheck /usr/local/bin/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v jq > /dev/null; then
|
||||||
|
sudo apt install -y jq
|
||||||
|
fi
|
@ -33,3 +33,6 @@ indent_style = space
|
|||||||
|
|
||||||
[LICENSE]
|
[LICENSE]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
|
|
||||||
|
[Vagrantfile]
|
||||||
|
indent_style = space
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@ build.tags
|
|||||||
calendar/kopano-calendar-*/
|
calendar/kopano-calendar-*/
|
||||||
*.pem
|
*.pem
|
||||||
apt_auth.conf
|
apt_auth.conf
|
||||||
|
.vagrant
|
||||||
|
20
README.md
20
README.md
@ -59,7 +59,7 @@ The compose file itself is part of the git repository and should not be edited d
|
|||||||
|
|
||||||
This project uses the `COMPOSE_FILE` environment variable to allow users to override the ports exposed by each container (for example when using a different front facing proxy). When using a `docker-compose.override.yml` file make sure this is included in this variable in the `.env` file. For example like this:
|
This project uses the `COMPOSE_FILE` environment variable to allow users to override the ports exposed by each container (for example when using a different front facing proxy). When using a `docker-compose.override.yml` file make sure this is included in this variable in the `.env` file. For example like this:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
COMPOSE_FILE=docker-compose.yml:docker-compose.portmapping.yml:docker-compose.override.yml
|
COMPOSE_FILE=docker-compose.yml:docker-compose.portmapping.yml:docker-compose.override.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -154,6 +154,24 @@ Yes, that is certainly a possibility. Within the `examples/` directory you can f
|
|||||||
- Same command but getting volumes from the existing `kopano_server` container: `docker run --rm -it --volumes-from kopano_server -v /root/kopano-backup:/kopano/path zokradonh/kopano_utils kopano-backup -h`
|
- Same command but getting volumes from the existing `kopano_server` container: `docker run --rm -it --volumes-from kopano_server -v /root/kopano-backup:/kopano/path zokradonh/kopano_utils kopano-backup -h`
|
||||||
- Get a shell in a new container to (for example) run `kopano-migration-pst`: `docker run --rm -it -v /var/run/kopano/:/var/run/kopano -v $(pwd):/kopano/path zokradonh/kopano_utils` (to directly run kopano-migration-pst just append it to the command)
|
- Get a shell in a new container to (for example) run `kopano-migration-pst`: `docker run --rm -it -v /var/run/kopano/:/var/run/kopano -v $(pwd):/kopano/path zokradonh/kopano_utils` (to directly run kopano-migration-pst just append it to the command)
|
||||||
|
|
||||||
|
### Try this project without installing Docker locally
|
||||||
|
|
||||||
|
This project includes a configuration file for [Vagrant](https://www.vagrantup.com/) to easily try kopano-docker locally. All that is required is Vagrant itself and Virtualbox.
|
||||||
|
|
||||||
|
Steps to start kopano-docker in Vagrant:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# run setup.sh
|
||||||
|
$ ./setup.sh
|
||||||
|
# provision virtual machine
|
||||||
|
$ vagrant up
|
||||||
|
# alternatively "vagrant up --provider hyperv" when running on Windows
|
||||||
|
# in case you want to connect into the machine
|
||||||
|
$ vagrant ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
After the machine has started it will be reachable from the local system through the IP `10.16.73.20`, please make sure that your chosen hostname resolves to this IP. The project files are mounted to `/vagrant` in the machine. To interact with the containers just change into this directory first.
|
||||||
|
|
||||||
## Third party docker images
|
## Third party docker images
|
||||||
|
|
||||||
The example `docker-compose.yml` uses the following components for the MTA (mail delivery, including anti-spam & anti-virus) and openLDAP. Please consult their documentation for further configuration advice.
|
The example `docker-compose.yml` uses the following components for the MTA (mail delivery, including anti-spam & anti-virus) and openLDAP. Please consult their documentation for further configuration advice.
|
||||||
|
33
Vagrantfile
vendored
Normal file
33
Vagrantfile
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# -*- mode: ruby -*-
|
||||||
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
|
Vagrant.configure(2) do |config|
|
||||||
|
if !Vagrant.has_plugin?("vagrant-docker-compose")
|
||||||
|
print " WARN: Missing plugin 'vagrant-docker-compose'.\n"
|
||||||
|
print " Use 'vagrant plugin install vagrant-docker-compose' to install.\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
config.vm.box = "hashicorp/bionic64"
|
||||||
|
|
||||||
|
config.vm.provider "virtualbox" do |v|
|
||||||
|
v.memory = 4096
|
||||||
|
v.cpus = 2
|
||||||
|
end
|
||||||
|
|
||||||
|
config.vm.network "private_network", ip: "10.16.73.20"
|
||||||
|
|
||||||
|
config.vm.provision :docker
|
||||||
|
config.vm.provision :docker_compose
|
||||||
|
|
||||||
|
config.vm.provision :shell, :path => "./.ci/setup-tools.sh"
|
||||||
|
|
||||||
|
config.vm.provision "app",
|
||||||
|
type: "shell",
|
||||||
|
keep_color: true,
|
||||||
|
privileged: false,
|
||||||
|
run: "always",
|
||||||
|
inline: <<-SCRIPT
|
||||||
|
cd /vagrant
|
||||||
|
docker-compose up --detach
|
||||||
|
SCRIPT
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user