Run PerlOnJava in a Docker container for isolated and portable execution.
- Docker installed on your machine
docker build -t perlonjava:latest .This creates a Docker image named perlonjava with the latest tag.
# Simple one-liner
docker run --rm perlonjava:latest -E 'say "Hello from Docker!"'
# Run a script file (mount current directory)
docker run --rm -v "$(pwd)":/scripts perlonjava:latest /scripts/myscript.pl
# Interactive shell
docker run --rm -it perlonjava:latest -de0--rm: Automatically remove the container when it exits
-v /path/to/scripts:/scripts: Mount local directory for script access
-e VAR=value: Set environment variables
--name myname: Assign a name to the container for easier management
# Copy test file to local directory
cp src/test/resources/unit/array.t .
# Run test in Docker
docker run --rm -v "$(pwd)":/test perlonjava:latest /test/array.tTo use JDBC drivers, add them to the Dockerfile or mount them at runtime:
# Mount driver and use it
docker run --rm \
-v /path/to/mysql-connector.jar:/drivers/mysql.jar \
-e CLASSPATH=/drivers/mysql.jar \
perlonjava:latest your_script.plIf you need to keep a container running:
# Start named container
docker run --name perlonjava_app -d perlonjava:latest -E 'sleep infinity'
# Execute commands in running container
docker exec perlonjava_app jperl -E 'say "Hello"'
# Stop and remove
docker stop perlonjava_app
docker rm perlonjava_appModify the Dockerfile to include additional dependencies:
# Add JDBC driver
FROM eclipse-temurin:21-jdk
COPY --from=build /app/target/perlonjava-3.0.0.jar /app/perlonjava.jar
COPY path/to/driver.jar /app/drivers/
ENV CLASSPATH=/app/drivers/driver.jar
ENTRYPOINT ["java", "-jar", "/app/perlonjava.jar"]- Installation Guide - Build without Docker
- Database Access - Using JDBC drivers