Sign inSign up

power4j/mvnd

By power4j

•Updated 23 days ago

Docker images for Apache Maven Daemon (`mvnd`) with multi-JDK support

Image
Integration & delivery
Developer tools
1

3.0K

power4j/mvnd repository overview

⁠MVND Docker Images

Docker images for Apache Maven Daemon (mvnd) with multi-JDK support, enabling fast Maven project builds in containerized environments.

⁠🚀 Quick Start

⁠Pull Images
# Use JDK 17 (Recommended)
docker pull power4j/mvnd:1.0.5-temurin-17-jdk-jammy

# Use JDK 8
docker pull power4j/mvnd:1.0.5-temurin-8-jdk-jammy

# Use JDK 11
docker pull power4j/mvnd:1.0.5-temurin-11-jdk-jammy

# Use JDK 21
docker pull power4j/mvnd:1.0.5-temurin-21-jdk-jammy

# Use JDK 22
docker pull power4j/mvnd:1.0.5-temurin-22-jdk-jammy

# Use JDK 25
docker pull power4j/mvnd:1.0.5-temurin-25-jdk-jammy
⁠Basic Usage
# Test
docker run --rm  power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd -v

# Run in Maven project directory
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install

# Or use alias to simplify commands
alias mvnd='docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd'
mvnd clean install

⁠📦 Available Images

⁠Image Tag Format
power4j/mvnd:{mvnd-version}-{jdk-type}

For architecture-specific tags:

power4j/mvnd:{mvnd-version}-{jdk-type}-amd64
power4j/mvnd:{mvnd-version}-{jdk-type}-aarch64

The unsuffixed tag is reserved for the multi-arch manifest generated by the release workflow when cpu_arch=all.

⁠Supported JDK Versions
JDK VersionImage TagBase ImageRecommended Use
JDK 8temurin-8-jdk-jammyeclipse-temurin:8-jdk-jammyLegacy project compatibility
JDK 11temurin-11-jdk-jammyeclipse-temurin:11-jdk-jammyLTS version
JDK 17temurin-17-jdk-jammyeclipse-temurin:17-jdk-jammyRecommended LTS version
JDK 21temurin-21-jdk-jammyeclipse-temurin:21-jdk-jammyLTS version
JDK 22temurin-22-jdk-jammyeclipse-temurin:22-jdk-jammyNon-LTS version
JDK 25temurin-25-jdk-jammyeclipse-temurin:25-jdk-jammyLatest LTS version
⁠Supported mvnd Versions
  • 1.0.5 (current default, includes Linux Arm64 asset)
  • Other versions available at GitHub Releases⁠

⁠💡 Usage Examples

⁠1. Build Projects
# Clean and build
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install

# Skip tests
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install -DskipTests
⁠2. Run Tests
# Run all tests
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd test

# Run specific test
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd test -Dtest=MyTestClass
⁠3. Package Applications
# Package as JAR
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd package

# Package as WAR
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd package -Pwar
⁠4. Deploy to Repository
# Deploy to local repository
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd deploy

# Deploy to remote repository
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd deploy -DaltDeploymentRepository=remote-repo::default::https://your-repo.com

⁠🔧 Advanced Usage

⁠Custom Maven Settings
# Use custom settings.xml
docker run --rm \
  -v $(pwd):/workspace \
  -v ~/.m2/settings.xml:/root/.m2/settings.xml \
  -w /workspace \
  power4j/mvnd:1.0.5-temurin-17-jdk-jammy \
  mvnd clean install -s /root/.m2/settings.xml
⁠Maven Profiles
# Use specific profile
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install -Pproduction

# Use multiple profiles
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install -Pdev,test
⁠JVM Arguments
# Set memory limits
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install -Dmvnd.jvmargs="-Xmx2g -Xms1g"

# Set system properties
docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install -Dspring.profiles.active=prod

⁠🐳 Docker Compose Integration

Create docker-compose.yml:

version: '3.8'
services:
  mvnd:
    image: power4j/mvnd:1.0.5-temurin-17-jdk-jammy
    volumes:
      - .:/workspace
      - ~/.m2:/root/.m2
    working_dir: /workspace
    command: mvnd clean install

Run:

docker-compose up

⁠🔍 Troubleshooting

⁠Common Issues
  1. Permission Issues

    # Ensure current user has read/write permissions on project directory
    sudo chown -R $(id -u):$(id -g) .
    
  2. Maven Repository Cache

    # Clean Maven local repository
    docker run --rm -v $(pwd):/workspace -w /workspace power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean
    
  3. Network Issues

    # Use proxy settings
    docker run --rm -v $(pwd):/workspace -w /workspace \
      -e HTTP_PROXY=http://proxy:port \
      -e HTTPS_PROXY=http://proxy:port \
      power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd clean install
    
⁠Check Versions
# Check mvnd version
docker run --rm power4j/mvnd:1.0.5-temurin-17-jdk-jammy mvnd --version

# Check Java version
docker run --rm power4j/mvnd:1.0.5-temurin-17-jdk-jammy java --version

⁠🤝 Contributing

Issues and Pull Requests are welcome! 👉 https://github.com/power4j/mvnd-docker⁠

⁠📄 License

This project is licensed under the Apache License 2.0.

Tag summary

Content type

Image

Digest

sha256:4186c3590…

Size

228.3 MB

Last updated

23 days ago

docker pull power4j/mvnd:1.0.6-temurin-11-jdk-jammy