Spring BootのアプリケーションをDockerで動かす
動かすだけなら簡単にできた。
Getting Started · Spring Boot with Docker
をなぞるだけです。
環境
- OpenJDK 1.8
- Maven 3.0.5
どちらも、CentOS7でyumで入れました。
Dockerイメージの作成
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.2.3</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
ここでdockerDirectoryとして参照している先にDockerfileを置く
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD demo-0.0.1.jar app.jar RUN sh -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ADDしているjarは、実際に作ったjarの名前です。
あとは、
$ mvn package docker:build
するだけで、Dockerイメージが登録されます。
ただし、実行する時にdockerコマンドを実行できるユーザである必要があります。
root以外で実行したいときは以下などをご参考あれ。
10.5 root以外のユーザーにDockerコマンドの実行を許可
Dokcerコンテナの実行
こちらはもうそのままです。
先のpom.xmlでimageNameで指定したイメージ名で登録されているので、それを実行するだけ。
$ docker run -p 8080:8080 <イメージ名>
これで無事に起動します。
公式をなぞっただけですが、元となるイメージは別途用意したいところです。