This module contains integration tests for the default launch script that is used to make a jar file fully executable on Linux. The tests use Docker to verify the functionality in a variety of Linux distributions.
The setup that’s required varies depending on your operating system.
The latest version of Docker runs as a native Mac application but isn’t supported by docker-java. This means that you should use Docker Toolbox. See the OS X installation instructions for details.
Install Docker as appropriate for your Linux distribution. See the Linux installation instructions for more information.
Next, add your user to the docker
group. For example:
$ sudo usermod -a -G docker awilkinson
You may need to log out and back in again for this change to take affect and for your user to be able to connect to the daemon.
Before running the tests, you must prepare your environment according to your operating system.
The tests must be run in an environment where various environment variables including
DOCKER_HOST
and DOCKER_CERT_PATH
have been set:
$ eval $(docker-machine env default)
Docker Daemon’s default configuration on Linux uses a Unix socket for communication.
However, Docker’s Java client uses HTTP by default. Docker Java’s client can be configured
to use the Unix socket via the DOCKER_URL
environment variable:
$ export DOCKER_URL=unix:///var/run/docker.sock
You’re now ready to run the tests. Assuming that you’re in the same directory as this README, the tests can be launched as follows:
$ mvn -Pdocker clean verify
The first time the tests are run, Docker will create the container images that are used to
run the tests. This can take several minutes, particularly if you have a slow network
connection. Subsequent runs will be faster as the images are cached locally. You can run
docker images
to see a list of the cached images. Images created by these tests will be
tagged with spring-boot-it
prefix to easily distinguish them.
If you want to reclaim the disk space used by the cached images (at the expense of having
to wait for them to be downloaded and rebuilt the next time you run the tests), you can
use docker images
to list the images and docker rmi <image>
to delete them (look for
spring-boot-it
tag). See docker rmi --help
for further details.