允许docker被远程访问

见:https://www.cnblogs.com/wintersoft/p/10921396.html

教程:https://spring.io/guides/gs/spring-boot-docker/#initial

在idea新建项目

spring boot启动类加上

@RestController

@RequestMapping("/")
public String home() {
return "Hello Docker!";
}

在启动类同级,新建Servletinitializer类

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class Servletinitializer extends SpringBootServletInitializer { @Override
protected SpringApplicationBuilder
configure(SpringApplicationBuilder builder) {
return builder.sources(DockerDemo2Application.class);
}
}

pom.xml加入

<packaging>war</packaging>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency> <dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

点击idea右上的Edit Confgurations -> + -> Docker -> Dockerfile,配置如图

生成war包,终端输入:mvn clean package

项目根目录新建/tomcat/conf

复制tomcat的server.xml到/tomcat/conf

若没有tomcat配置文件可以下载一个,如:

wget -P /opt/downloads http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.20/bin/apache-tomcat-9.0.20.tar.gz
tar zxvf /opt/downloads/apache-tomcat-9.0.20.tar.gz -C /opt

server.xml的host节点内添加<Context path="" docBase="app" reloadable="true" debug="0" />

项目根目录创建Dockerfile

FROM tomcat
MAINTAINER sundong
ARG WAR=docker-demo2-1.0.0.war
COPY /tomcat/conf/server.xml /publish/tomcat/conf/server.xml
COPY target/$WAR /publish/app/$WAR
RUN mkdir $CATALINA_HOME/webapps/app \
&& cp /publish/app/$WAR $CATALINA_HOME/webapps/app \
&& cp /publish/tomcat/conf/server.xml $CATALINA_HOME/conf \
&& unzip $CATALINA_HOME/webapps/app/$WAR -d $CATALINA_HOME/webapps/app/ \
&& rm $CATALINA_HOME/webapps/app/$WAR \
&& cd $CATALINA_HOME/webapps/app && echo "succ" > a.txt
EXPOSE 8080

项目根目录创建docker-compose.yml

version: '3.4'
services:
dockerweb:
image: dockerdemox2:latest
container_name: dockerdemox2
restart: always
build:
context: .
dockerfile: Dockerfile
volumes:
- ./tomcat:/publish/tomcat
- ./target:/publish/app
ports:
- "28080:8080"

解决tomcat启动慢
https://www.cnblogs.com/wintersoft/p/10942845.html

把项目中的target文件夹的war包、tomcat文件夹、Dockerfile和docker-compose.yml 复制到centos

进入centos网站目录

docker-compose up --build

docker-compose build
docker-compose up

浏览器输入192.168.1.102:38080,测试站点是否启动成功

若没问题,退出后,以守护进程启动站点

docker-compose up -d

idea docker docker-compose发布springboot站点到tomcat的更多相关文章

  1. Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器

    Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器的方式 在开发完项目之后,我们需要把开发的项目发布到指定的服务器上,有两种方式,如下 1.把项目发布成文件系 ...

  2. Docker+Jenkins+Git发布SpringBoot应用

    Doccker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之 ...

  3. DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排

    前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将 ...

  4. 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)

    写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...

  5. 小白学Docker之Compose

    承接上篇文章:小白学Docker之基础篇,自学网站来源于https://docs.docker.com/get-started 概念 Compose是一个编排和运行多容器Docker应用的工具,主要是 ...

  6. jenkins+maven+docker集成java发布(一)自动发布

    JAVA项目持续集成发布 标签(空格分隔): java jenkins 微服务中持续集成自动发布是很重要的一个环节,将不同的模块应用自动部署到一台或者N台服务器中如果采用人工部署的方式不太现实 git ...

  7. Docker学习—Compose

    前言 前面<Docker学习-DockerFile>文中介绍了dockerfile相关的语法,及使用方式:接下来了解docker三剑客之一的 Compose:接下来详细学习. 一.dock ...

  8. Docker之Compose服务编排

    Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...

  9. (转)Docker之Compose服务编排

    转自:https://www.cnblogs.com/52fhy/p/5991344.html Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过 ...

随机推荐

  1. Redis安装、主从配置及两种高可用集群搭建

    Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154 ...

  2. 关于 Spring AOP (AspectJ) 你该知晓的一切

    版权声明:本文为CSDN博主「zejian_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/javazej ...

  3. Shell脚本编程30分钟入门(小结)(转)

    原文链接https://www.jb51.net/article/161028.htm 什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿.程序化脚本,是一种 ...

  4. VMware15.5版本通过挂载系统光盘搭建yum仓库

    VMware15.5版本通过挂载系统光盘搭建yum仓库一.1.打开CentOS 7虚拟机. 2.登录虚拟机,选择未列出  用户名:root 密码:输入自己设置的密码 点击登录. 3.右键单击打开终端. ...

  5. 服务器部署docker lnmp环境

    一.安装dockerDocker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上 1.uname -an 查看当前系统版本 2.yum -y install docker 下载 ...

  6. 哈希长度拓展攻击之De1CTF - SSRF Me

    题目考查:python代码审计.hash长度拓展攻击 0x01 题目源码: #! /usr/bin/env python #encoding=utf-8 from flask import Flask ...

  7. PAT甲级1011水题飘过

    题目分析:对于输入的数据分三条,选出每条中最大值记录下来,按照题目要求算出最大可能的获利即可 #include<iostream> using namespace std; ]; //k数 ...

  8. python笔记37-史上最好用的发邮件zmail

    简介 python发邮件之前用的是smtplib,代码太过于复杂,学习成本大,并且很多人学不会.之前专门写过一篇https://www.cnblogs.com/yoyoketang/p/7277259 ...

  9. 算法图解(python3版本)--读后感

    本想写详细点,但入门书籍没啥干货,一天就看完了,简单介绍下: 大纲--两方面 一.介绍算法是什么:算法的作用,判断算法效率高低的指标 ①通过编程解决问题的思路,或者说程序本身就是算法,算法作用是为了提 ...

  10. Centos7-安装py3

    安装依赖 yum install gcc openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel li ...