Home > Software > How to Deploy OpenMetadata with Docker Compose: A Step-by-Step Guide

How to Deploy OpenMetadata with Docker Compose: A Step-by-Step Guide

Anastasios Antoniadis

Learn how to deploy OpenMetadata effortlessly using Docker Compose with our easy-to-follow guide. Get your metadata management platform up and running quickly with a scalable and flexible deployment.

Docker (1)

OpenMetadata is an emerging open-source metadata management and data discovery platform that simplifies the way users discover, understand, and consume data assets in the enterprise. Leveraging Docker Compose for deploying OpenMetadata can significantly streamline the setup process, making it more accessible for data teams to adopt and integrate into their workflows. This article provides a detailed guide on deploying OpenMetadata using Docker Compose, including a practical Docker Compose example.


Before you start, ensure you have Docker and Docker Compose installed on your system. These tools are critical for managing the containerized environment in which OpenMetadata will run.

Step 1: Create Your Docker Compose File

The first step in deploying OpenMetadata is to create a docker-compose.yml file. This file will define the services required to run OpenMetadata, including the application server and database. Create a new file named docker-compose.yml in a suitable directory on your system and open it in your text editor of choice.

Example Docker Compose Configuration for OpenMetadata

Below is a basic Docker Compose configuration tailored for OpenMetadata. This setup uses the official OpenMetadata Docker image and a PostgreSQL database, a common choice for OpenMetadata deployments.

version: '3.8'

    image: openmetadata/server:latest
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/openmetadata
      - SPRING_DATASOURCE_USERNAME=openmetadata_user
      - SPRING_DATASOURCE_PASSWORD=openmetadata_pass
      - db
      - "8585:8585"

    image: postgres:13
      - POSTGRES_DB=openmetadata
      - POSTGRES_USER=openmetadata_user
      - POSTGRES_PASSWORD=openmetadata_pass
      - postgres_data:/var/lib/postgresql/data


Explanation of the Docker Compose File

  • OpenMetadata Service: This service runs the OpenMetadata application, using the latest server image. It is configured to connect to the PostgreSQL database (db) service defined below. The application is accessible on port 8585.
  • Database (db) Service: This service runs a PostgreSQL database, using the version 13 image. It sets up an initial database, user, and password, as specified in the environment variables. The postgres_data volume is used to persist the database data.
  • Volumes: A named volume (postgres_data) is declared to ensure that the database data persists across container restarts and recreations.

Step 2: Launching OpenMetadata

With your docker-compose.yml file ready, launch your OpenMetadata instance by running the following command in the directory containing your Docker Compose file:

bashCopy code

docker compose up -d

This command starts the OpenMetadata application and the PostgreSQL database in detached mode, making your OpenMetadata instance accessible at http://localhost:8585.

Step 3: Verifying the Deployment

After launching your services with Docker Compose, you can verify that OpenMetadata is running by navigating to http://localhost:8585 in your web browser. You should be greeted with the OpenMetadata UI, where you can start exploring and managing your data assets.


Deploying OpenMetadata using Docker Compose provides a convenient and straightforward method to get your metadata management platform up and running quickly. By following the steps outlined in this guide, you can achieve a flexible and scalable deployment ready to be integrated into your data ecosystem. Docker Compose simplifies the deployment process and ensures that your OpenMetadata instance is easy to manage, update, and scale as your data needs evolve.

Anastasios Antoniadis
Follow me
0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x