OpenLMIS Dockerized Development Image
Image for launching (non-)interactive containers with gradle suitable for developing OpenLMIS v3+ Services.
Based off of alpine-java.
/appexpects a Gradle project to be mounted in. It is also the default working directory.
/gradleis a volume for sharing a common Gradle cache. Apart from the project-level cache that will be stored
/appvolume, this one is useful for the typical startup of gradle and for sharing that startup in the
build step of other OpenLMIS Services when appropriate. This should reduce frequent downloads.
- 8080 - typical HTTP port
- 8000 - typical JVM debug port
Environment, EntryPoint & Command
- GRADLE_OPTS enables the daemon and that's all. This is left intentionally short as other environments (e.g. CI)
will want to disable the daemon.
- EntryPoint is, like alpine-java, undefined
- command is bash
Build a gradle application (and throw container away when done):
> docker run -it --rm --entrypoint gradle -v $(pwd):/app openlmis/dev build
> docker run -it --rm -v $(pwd):/app openlmis/dev
Interactive using a named volume for the gradle cache:
> docker run -it --rm -v gradlecache:/gradle -v $(pwd):/app openlmis/dev
Typical development day:
> docker run -it --rm -p 8080:8080 -v gradlecache:/gradle -v $(pwd):/app openlmis/dev $ gradle clean build
Most interactions should occur through docker-compose.
- JDK 1.8
- Gradle 4.0
- Node 6.2
- PSQL 9+
- RAML-Cop 5