Skip to content

ifi-navet/docker-playframework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Play Framework

Play Framework 2.1 tags

Based on image java:7

Play Framework 2.2 tags

Based on image java:7

Tips for your Dockerfile

Make builds quicker by only downloading dependencies when they change.

Example Dockerfile

# Select a tag that fits your project
FROM ifinavet/playframework:2.1.5

# Choose a work directory
WORKDIR /app

# Copy project/ which holds your project definitions
COPY project project

# Only for Play Framework 2.2.*
COPY build.sbt ./

# Trigger dependency download
RUN play help

# Copy your entire project
COPY ./ ./

# Your start command
CMD play run

This will create intermediate builds for your image. If there are changes to your project/ directory, it will build your image from the COPY project project.

If the only thing you changed is in your source code, it will run from COPY ./ ./ and keep your dependency installs like it was on your last build.

Worth noting

There are generated output in your project/ directory that may trigger a complete rebuild each time you build your image. The following should be included in your .dockerignore file

target/
project/target/
project/project/

Development mode

Just mount your source directory to the container workdir, and with play run as your CMD it should recompile your running code on the fly.

With docker-compose you can do the following

File: docker-compose.yml

app:
  build: . # Builds Dockerfile in this directory, your application
  volumes:
    - ./:/app # Mount this directory to container /app
  ports:
    - 9000:9000 # Expose the necessary ports
  command: play run # Override CMD in Dockerfile

Run it with docker-compose up (defaults to docker-compose.yml if no -f tag is specified)

Stop docker-compose containers: docker-compose stop

Remove docker-compose containers: docker-compose rm <optional labels>