Skip to content

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>

Releases

Packages

Contributors