You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器部署Kepler科学工作流运行引擎及生成.war文件

Kepler in Docker: War File & Deployment Guide

Hey there! Let me break this down for you since I’ve tinkered with Kepler and Docker setups before.

First: Do You Actually Need a .war File?

Kepler is built primarily as a desktop app and command-line tool for scientific workflows—it doesn’t ship with a .war file by default because it’s not natively a web application. So start by clarifying your goal:

  • If you just want to run Kepler workflows inside a Docker container (headless/command-line mode), you don’t need a .war file at all.
  • If you’re trying to expose Kepler as a web service (to interact with it via HTTP requests), then yes, you’ll need to create a custom .war package.

If You Need a .war File (Web Service Setup)

Here’s how to build one from your Kepler installation:

  1. Install the Web Service Plugin: Open Kepler on your local machine, go to Tools > Plugin Manager, search for and install the Kepler Web Service plugin. This adds the functionality to wrap Kepler as a web app.
  2. Export the .war File: Once the plugin is installed, navigate to File > Export > Web Application (.war). Follow the prompts to select an output directory, configure web service endpoints, and generate the .war file.
  3. Validate the Package: The generated .war will include all Kepler dependencies and web service logic needed to run workflows via HTTP calls.

Deploying Kepler in Docker (Two Common Scenarios)

Scenario 1: Run Kepler Headless/Command-Line in Docker

This is the most straightforward use case for running automated workflows. Here’s a step-by-step setup:

  1. Create a Dockerfile:
# Use a Java base image matching Kepler's requirements (Java 8 or 11—check your Kepler version)
FROM openjdk:11-jre-slim

# Set working directory inside the container
WORKDIR /kepler

# Copy your local Kepler installation to the container
# Replace ./kepler with the path to your local Kepler folder
COPY ./kepler .

# Optional: Copy your workflow files (.xml) into the container for easy access
COPY ./my-workflows /kepler/workflows

# Define the entrypoint to run Kepler headless with your workflow
ENTRYPOINT ["./kepler.sh", "-headless", "-run", "-workflow", "/kepler/workflows/my-target-workflow.xml"]
  1. Build the Docker image:
docker build -t kepler-workflow-runner .
  1. Run the container:
docker run --rm kepler-workflow-runner

Scenario 2: Deploy Kepler as a Web Service (Using Your .war File)

If you generated the .war file as above, deploy it using a Tomcat base image:

  1. Create a Dockerfile:
# Use a Tomcat image compatible with your Java version
FROM tomcat:9-jdk11-openjdk-slim

# Copy your generated Kepler .war file into Tomcat's webapps directory
# Renaming to ROOT.war makes it accessible at the root URL
COPY ./kepler-web-service.war /usr/local/tomcat/webapps/ROOT.war

# Expose the default Tomcat port
EXPOSE 8080

# Start Tomcat to serve the web service
CMD ["catalina.sh", "run"]
  1. Build and launch the container:
docker build -t kepler-web-service .
docker run -p 8080:8080 --rm kepler-web-service

Once running, you can access Kepler’s web endpoints at http://localhost:8080 (check the web service plugin docs for specific API paths and parameters).

Quick Pro Tips

  • Double-check that your Kepler version matches the Java version in your Docker base image (older Kepler releases require Java 8).
  • For headless runs, use the -params flag with kepler.sh to pass dynamic workflow parameters at runtime.
  • If you don’t have a local Kepler install, adjust the Dockerfile to download and extract the official Kepler archive during the build process.

内容的提问来源于stack exchange,提问作者nour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:56:02