System Installation with Docker¶
The recommended way to quickly install Unidata MDM is by using Docker.
The system can be installed manually, if desired. This method of installation requires special skills and is intended to describe the basic steps. In projects, the IT infrastructure, integration parameters, and etc. will differ.
Note
This page contains an example of installing via Docker. To install, you need to have a repository with the Unidata distribution in the form of Docker images
Preparing for Installation¶
Server preparation:
Update the existing list of Ubuntu packages. Command:
sudo apt update
Install Docker from oficial repository. See docs https://docs.docker.com/
Install Docker Compose (version 1.29 or upper).
Configure permissions for Docker Compose. Command:
sudo chmod +x /usr/local/bin/docker-compose
Install Git.
Link to repository:
According to the Unidata supply contract, you need to get access to the repository with the distribution of your product.
Unidata CE repository: You can use Unidata CE Git project with the Docker images as an example and create your own project based on it. The repo contains .env file that includes tags on system components and a set of component images.
Tip
Use Unidata CE repository only if you are installing the Community Edition
Installing with Docker¶
To install Unidata MDM:
Make sure you have a link to the repository with the product distribution. About getting the link, see above.
Clone the repository from Gitlab or Docker. The command:
git clone [your-link-unidata-platform-deploy.git]
Go to the directory with code using the command:
cd unidata-platform-deploy
Run Unidata system:
docker-compose up -d
By default, you can see UI on localhost:8081
.
Default login/password: admin
/ admin
. After the first logging in, you will need to change the password.
Custom Installation with Docker Compose¶
Note
The version of docker-compose should be 1.29 or upper
If necessary, use docker-compose.yml
to create your own image. The .env
file contains the list of available variables.
Create docker-compose.yml file.
Create hunspell folder with dictionaries.
You can recreate docker container with new settings by the command:
docker-compose up -d --build --force-recreate
Example of the docker-compose.yml file
version: '2.4'
services:
unidata-postgres:
image: postgres:12
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
networks:
- unidata
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 1s
retries: 20
unidata-elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.type=single-node"
volumes:
- ./hunspell:/usr/share/elasticsearch/config/hunspell/
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
- 9300:9300
networks:
- unidata
healthcheck:
test: >
bash -c "curl http://localhost:9200 | grep '\"cluster_name\"'"
interval: 10s
timeout: 2s
retries: 20
unidata:
image: repo.tddev.ru/unidata-ce/backend:latest
ports:
- 9080:8080
- 5005:5005
networks:
- unidata
environment:
POSTGRES_ADDRESS: unidata-postgres:5432
POSTGRES_USERNAME: postgres
POSTGRES_PASSWORD: postgres
ELASTICSEARCH_CLUSTER_ADDRESS: unidata-elasticsearch:9300
ELASTICSEARCH_CLUSTER_NAME: docker-cluster
depends_on:
unidata-postgres:
condition: service_healthy
unidata-elasticsearch:
condition: service_healthy
ui:
image: repo.tddev.ru/unidata-ce/frontend:latest
ports:
- 8081:80
networks:
- unidata
links:
- unidata
networks:
unidata:
driver: bridge