Docker - 部署Java Web 项目之注意事项

上篇 Docker - 部署Java Web 项目记录了使用docker如何搭建一个拥有java运行环境的docker镜像。
这篇博客记录之前构建镜像过程中遇到的一些问题。

这里,在docker容器中,部署项目思路:
1.先git拉取最新代码
2.因为项目使用了maven进行包管理,并且是多模块。所以先每个模块分别打包
3.打包完成后,将最后的war包移动到tomcat中,
4.启动tomcat

脚本

run.sh

#kill -9 `lsof -i:8080 | sed -n "2, 1p" |awk '{print $2}'|uniq`
cd /opt/soft/git/client/qa/wybc-malls/
git pull origin master
echo 'pull over...'

cd /opt/soft/git/client/qa/wybc-malls/wybc-parent
mvn clean install

cd /opt/soft/git/client/qa/wybc-malls/wybc-common
mvn clean install

cd /opt/soft/git/client/qa/wybc-malls/wybc-manager
mvn clean install

cd /opt/soft/git/client/qa/wybc-malls/wybc-manager/wybc-manager-web
mvn clean package -Pqa

echo 'package over...'
kill -9 `lsof -i:8087 | sed -n "2, 1p" |awk '{print $2}'|uniq`
rm /opt/project_file/qa/malls.war
cp /opt/soft/git/client/qa/wybc-malls/wybc-manager/wybc-manager-web/target/malls.war /opt/project_file/qa/

echo `lsof -i:8087`
#kill -9 `lsof -i:8080 | sed -n "2, 1p" |awk '{print $2}'|uniq`
sleep 5
rm -rf /opt/tomcatqa/webapps/*
/opt/tomcatqa/bin/startup.sh > /dev/null 2>&1 &
echo `lsof -i:8087`
sleep 5
echo 'start over start over start over... start over... start over... start over... start over... start over... start over... start over... '
maven仓库

1、关于本地仓库的位置

默认位置: ${user.home}/.m2/repository

windows:C:\Documents and Settings\Administrator.m2

Linux:/root/.m2

问题

1、执行脚本,在maven打包这一步,报了找不到jar包得错

Failed to execute goal on project wybc-manager-service: Could not resolve dependencies for project com.wybc:wybc-manager-service:jar:0.0.1-SNAPSHOT: Could not find artifact com.alipay:sdk-java:jar:20170307171631 in central (https://repo.maven.apache.org/maven2)

这里写图片描述

阿里云的alipay.jar包在maven的远程仓库中找不到。
解决思路:
方法1:修改maven的配置文件,指定阿里云的maven仓库。
方法2:我本地是有这个jar包的,直接复制到服务器对应的maven仓库下。

2.、tomcat8启动, 提示找tomcat7的 setclasspath.sh文件????????
目前还没有解决 !我并没有配置tomcat环境。很奇怪。

3、Docker为什么刚运行就退出了?

后台运行docker镜像:

$ docker run -d ubuntu /root/run.sh

运行了一个简单的容器后,然后docker ps -a 进行查看, 会发现容器已经退出。

解决办法:
在我们要运行的run.sh脚本后面加命令tail -f /dev/null,就可以保持你的容器一直在前台运行了。因为tail -f /dev/null这个命令是一直执行的,这样容器就不会退出来。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值