docker几种打包镜像-Java项目
·
1. 单独Dockerfile
Dockerfile文件
FROM frolvlad/alpine-oraclejre8:slim
VOLUME /usr/test
# 根据目录情况调整
ADD ./project-register.jar register.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8","-jar","/register.jar"]
EXPOSE 8761
打包镜像
# mvn打包
mvn clean install -DskipTests
# 镜像打包
cd project-register/ #dockerfile文件目录
docker build -t project/register . # .不能丢
2. Dockerfile + Maven
Dockerfile文件(同上)
pom.xml文件
<!-- 参数 -->
<docker.directory>src/main/docker</docker.directory>
<docker.host>tcp://127.0.0.1:2375</docker.host>
<docker.env>/local</docker.env>
<!-- 插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.14</version>
<configuration>
<imageName>${project.parent.artifactId}/${project.artifactId}${docker.env}</imageName>
<dockerDirectory>${docker.directory}</dockerDirectory>
<!-- <dockerHost>${docker.host}</dockerHost> -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
打包镜像
# 单一项目打包
cd project-register/
mvn clean package docker:build -DskipTests
3. Dockerfile + Docker Compose
Dockerfile文件(同上)
build.xml文件
services:
register:
# 镜像名称
image: project/project-register${ENV}
build:
context: ./
# dockerfile文件
dockerfile: Dockerfile/project-register
config:
image: project/project-config${ENV}
build:
context: ./
dockerfile: Dockerfile/project-config
gateway:
image: project/project-gateway${ENV}
build:
context: ./
dockerfile: Dockerfile/project-gateway
version: '2'
local.env文件
# env config
ENV=/local
打包镜像
# mvn 打包
mvn clean install -DskipTests
# docker compose 批量打包
docker-compose --env-file local.env -f build.yml build
4. 常用命令
删除无效镜像: docker image prune --filter="dangling=true"
更多推荐
所有评论(0)