idea编译部署java程序到vagrant虚拟机的docker服务器上
1. 修改vagrant网络配置
打开vagrant的Vagrantfile文件,将里面的
#config.vm.network "private_network", ip: "192.168.33.10"
解注掉,ip可以自行修改
2. 启动vagrant虚拟机
启动之后,在本地ping一下上面配置的虚拟机ip地址,确保网络是通的。
3.配置docker可以远程访问
vim /lib/systemd/system/docker.service
修改ExecStart为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
如果提示文件只读,那是当前用户无权限,加sudo进行编辑
重启docker服务
systemctl daemon-reload
service docker restart
4.idea配置
在idea的设置页面添加docker配置,选择TCP socket,输入虚拟机的ip:2375
tcp://192.168.33.10:2375
应用一下,如果正常会提示connection successful
5.项目配置Dockerfile
在项目根目录下创建Dockfile文件,添加如下内容
FROM openjdk:8-jdk-alpine
MAINTAINER xxx@qq.com
VOLUME /tmp
ADD target/xxx.jar app.jar
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
6. 启动和编译配置
name随便取名字,server选择之前添加的docker服务器,dockerfile选择刚刚创建的文件,image tag输入自己的image tag,run built image勾选一下,container name输入容器的名称,bind ports添加一个项目的端口映射。最后在before launch中添加一个maven打包命令,输入命令:
clean package -U -DskipTests
保存之后,运行即可,项目会先编译,再进行docker的image构建,最后运行。