Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Studio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,21 @@ The purpose of running Hackolade Studio in a Docker container is to operate the

The guide is designed to be understandable even if you've never used Docker before.

## 🎯 Using the Pre-built CLI Image (Recommended)

**Want to skip the build step?** We now provide a ready-to-use Docker image (`hackolade/hck-cli`) that includes Hackolade Studio and all plugins pre-installed. This is the fastest way to get started!

**Benefits:**
- ✅ No build step required - just pull and use
- ✅ Simplified data paths (`/data` instead of `/home/hackolade/Documents/...`)
- ✅ Secure secret management for license keys
- ✅ Always up-to-date with latest releases

**Get started:** See our [Getting Started Guide for the Pre-built CLI Image](./doc/getting-started-hck-cli.md) for complete instructions.

**When to use the pre-built image vs. building your own:**
- **Use pre-built image** (`hackolade/hck-cli`) if you want simplicity and all plugins included
- **Build your own** (instructions below) if you need specific plugin versions or customizations

## Repository structure
This repository contains files and instructions for running the [Hackolade Studio](https://hackolade.com) data modeling application, using the base image published on [Docker Hub](https://hub.docker.com/r/hackolade/studio):
Expand Down
96 changes: 96 additions & 0 deletions Studio/compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#
# Copyright © 2016-2026 by IntegrIT S.A. dba Hackolade. All rights reserved.
#
# The copyright to the computer software herein is the property of IntegrIT S.A.
# The software may be used and/or copied only with the written permission of
# IntegrIT S.A. or in accordance with the terms and conditions stipulated in
# the agreement/contract under which the software has been supplied.
#

# This file is an example of how to orchestrate the Hackolade CLI from a docker compose file
# leveraging our hck-cli docker image from Docker Hub
# This image contains the Hackolade Studio Release and all of the plugins already installed
# It's ready to be used.
#
# This compose.yml file is specifically designed for the pre-built hackolade/hck-cli image.
# For complete documentation and usage instructions, see: doc/getting-started-hck-cli.md
#
# If you are building your own image using hackolade/studio, use docker-compose.yml instead,
# which is designed for custom-built images. See doc/getting-started.md for building instructions.

services:
# Run a cli command (default to version)
# Pay attention to file paths as they must be paths inside the containers
# If a file needs to be made available from the host or another container, use the volumes section to mount the file or folders
# This compose exposes different manners to provide the License key or LicenseFile.xml for offline validation

# Example using online License key validation and the key stored in a secret file (file path from host) defined in the secrets section:
#
# docker compose run -t --rm validateKeyOnline
# docker compose run -t --rm hck-cli gendoc --format=HTML --model '/data/models/MongoDB/Yelp Challenge dataset.hck.json' --doc /data/output/doc-test --jsonSchema
hck-cli: &hck-cli
image: hackolade/hck-cli:8.8.5
command: ["version"]
restart: 'no'
# network_mode: 'none'
volumes:
- hackolade-studio-app-data:/home/hackolade/.config
- hackolade-studio-logs:/data/logs
- ${PWD}/models:/data/models
# - hackolade-studio-options:/data/options
- hackolade-studio-output:/data/output

showComputerIdForOfflineValidation:
extends: hck-cli
command: ["getComputerId"]

# validateKeyOfflineFromFile:
# extends: hck-cli
# network_mode: 'none'
# command:
# - validateKey
# - --file
# - /data/LicenseFile.xml
# volumes:
# - $HOME/Downloads/LicenseFile.xml:/data/LicenseFile.xml

# validateKeyOnlineFromFile:
# extends: hck-cli
# command:
# - validateKey
# - --key
# - /data/license-key.txt
# volumes:
# - $HOME/Downloads/license-key.txt:/data/license-key.txt


validateKeyOffline:
extends: hck-cli
network_mode: 'none'
command: ["validateKey"]
secrets:
- license_file

validateKeyOnline:
extends: hck-cli
command: ["validateKey"]
network_mode: host
secrets:
- license_key

volumes:
# This docker volume is mandatory if you want the licensing to work and be able to use the cli
hackolade-studio-app-data:
hackolade-studio-logs:
# This compose mounts the models folder from the host
# hackolade-studio-models:
# hackolade-studio-options:
hackolade-studio-output:

secrets: # Don't change the name of the secrets as the cli is looking for them by name with these values by default
license_key:
# Expects the license key to be put as content of the file path defined in the file variable
file: ${HOME}/Downloads/license-key.txt
license_file:
# Expects the license file to be put as content of the file path defined in the file variable
file: ${HOME}/Downloads/LicenseFile.xml
Loading