Skip to content

[P2] Publish official Docker images #315

@sfloess

Description

@sfloess

Problem

No official Docker images are published for platform-java.

Impact

  • Severity: MEDIUM
  • Category: Distribution/Ease of Use
  • Higher barrier to entry for new users
  • Users must build their own containers
  • No standardized deployment method
  • Harder to try the platform ("just run docker...")

Proposed Images

1. Base Platform Image

FROM eclipse-temurin:21-jre
COPY jplatform-launcher/target/*.jar /app/platform-java.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app/platform-java.jar"]

Usage:

docker run -p 8080:8080 flossware/platform-java:1.1

2. Platform with Sample Apps

Include sample applications pre-deployed for demos.

3. Development Image

Includes all build tools for contributors.

Image Registries

Publish to multiple registries:

  1. Docker Hub: flossware/platform-java:1.1
  2. GitHub Container Registry: ghcr.io/flossware/platform-java:1.1
  3. Quay.io: quay.io/flossware/platform-java:1.1

Tags

  • latest - latest stable release
  • 1.1, 1.2 - specific versions
  • main - latest main branch build
  • 1.1-alpine - alpine-based variant (smaller)

GitHub Actions Workflow

name: Build and Publish Docker Images

on:
  push:
    branches: [main]
    tags: ['*']

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: docker/setup-buildx-action@v3
      - uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      - uses: docker/build-push-action@v5
        with:
          push: true
          tags: flossware/platform-java:latest

Documentation

Update README.md:

## Quick Start with Docker

\`\`\`bash
docker run -p 8080:8080 flossware/platform-java:1.1
\`\`\`

Open http://localhost:8080/console in your browser.

Priority

P2 - Medium - Should be done for v1.2 release.

Resources

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions