制作nginx镜像from docker.io/centos:centos6
add nginx-1.6.0 /nginx-1.6.0
run yum -y install gcc pcre pcre-devel zlib-devel make
run useradd nginx -s /sbin/nologin
run cd /nginx-1.6.0 && ./configure --prefix=/nginx --user=nginx --group=nginx && make &&
make install
run echo "daemon off;" >> /nginx/conf/nginx.conf
run echo 'ip1=$(cat /etc/hosts | grep tomcat1 | awk '"'{print "'$1'"}'"')' >>
/7.sh
run echo 'ip=$(cat /etc/hosts | grep tomcat2 | awk '"'{print "'$1'"}'"')' >>
/7.sh
run echo "sed -i -e '33 i"'\u'"pstream backend {' -e '33 i"'\s'"erver ""'"'$ip'"'"":8080
weight=1;' -e '33 i"'\s'"erver ""'"'$ip1'"'"":8080 weight=1;}' -e '46 i"'\p'"roxy_pass http://backend;' /nginx/conf/nginx.conf" >> /7.sh
run echo "/nginx/sbin/nginx" >> /7.sh
cmd source /7.sh
用docker build 生成nginx镜像
制作tomcat镜像from docker.io/centos:centos6
add apache-tomcat-7.0.54 /apache-tomcat-7.0.54
add jdk1.7.0_65 /jdk1.7.0_65
add 123.sh /123.sh
add profile /profile
run mv /jdk1.7.0_65 /java
run mv /apache-tomcat-7.0.54 /tomcat7
add server.xml /tomcat7/conf/server.xml
add context.xml /tomcat7/conf/context.xml
run cp -rf /profile /etc/profile
run echo 'ip1=$(ifconfig | grep Bcast | awk '"'{print "'$2'"}'"' | awk -F : '"'{print
"'$2'"}')" >> /8.sh
run echo 'ip2=$(cat /etc/hosts | grep mysql | awk '"'{print "'$1'"}'"')' >> /8.sh
run echo "sed -i '118 "'i\a'"ddress="'"'"'"'$ip1'"'"'"'"'""
/tomcat7/conf/server.xml" >> /8.sh
run echo "sed -i '23 i"'\u'"rl="'"'jdbc:mysql://"'"'$ip2'"'":3306/javatest'"'"/>'
/tomcat7/conf/context.xml" >> /8.sh
add mysql-connector-java-5.1.22-bin.jar /tomcat7/lib/mysql-connector-java-5.1.22-bin.jar
add 456.sh /456.shcmd source /456.sh
编写tomcat守护进程脚本

program="/tomcat7/bin/startup.sh"
progress="tomcat"
while true;
do
sleep 10
progremflag=`ps -ef |grep $progress|wc -l`
echo $progremflag
if [ $progremflag -le 10 ];then
$program >/dev/null 2>&1 &
fi
done
用docker build 生成tomcat镜像
制作mysql镜像from docker.io/centos:centos6
add cmake-2.8.12 /cmake-2.8.12
add mysql-5.5.38 /mysql-5.5.38
run yum -y install ncurses-devel gcc gcc-c++
run cd /cmake-2.8.12 && ./configure && gmake && gmake install
run cd /mysql-5.5.38 && cmake -DCMAKE_INSTALL_PREFIX=/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all -SYSCONFDIR=/etc && make && make install
run rm -rf /etc/my.cnf
run cp /mysql-5.5.38/support-files/my-medium.cnf /etc/my.cnf
run cp /mysql-5.5.38/support-files/mysql.server /mysqld
run chmod 777 /mysqld
run groupadd mysql
run useradd -M -s /sbin/nologin mysql -g mysql
run chown -R mysql:mysql /mysql
run /mysql/scripts/mysql_install_db --user=mysql --basedir=/mysql/ --datadir=/mysql/data/
run ./mysqld start && cd /mysql/bin && echo "grant all privileges on *.* to 'root'@'%.%.%.%'
identified by '123456';" | ./mysql -u root && echo "create database javatest;" | ./mysql -u root && echo "create table javatest.yw(id int);" | ./mysql -u root
cmd cd /mysql/bin && ./mysqld_safe
用docker build 生成mysql镜像
至此,镜像都已经做好。下面开始启动容器先启动mysql
启动tomcat连接mysql
再启动nginx连接两台tomcat
Docker ps 查看容器启动状态
开始测试
验证tomcat连接mysql
谢谢观看,真心的希望能帮到您! 我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答