容器中项目的附件映射到宿主机始终没有成功,等以后成功了再总结步骤,下面把映射宿主机文件夹的相关步骤总结一下吧。
1、安装docker和docker-compose,见之前的博客。
3、更新到最新版的jpress,找到docker目录下的Dockerfile文件和docker-compose.yml文件,复制出来。
3、打包自己的jpress的war包。
4、修改Dockerfile的内容,复制到宿主机中。
COPY starter-tomcat-1.0.war /usr/local/tomcat/webapps/ROOT.war
修改为
COPY 自己war包名.war /usr/local/tomcat/webapps/ROOT.war
5、把war包和Dockerfile放在同一目录,cd到该目录中,执行下面的命令,生成自己的镜像。
docker build -t aaa/jpress:0.0.1 .
6、修改docker-compose.yml的内容,复制到宿主机中,4、5、6步骤的文件需要放在同一目录下,然后运行docker-compose up -d。
version: '3.1'
services:
db:
image: mysql:5.6
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: jpress
MYSQL_DATABASE: jpress
MYSQL_USER: jpress
MYSQL_PASSWORD: jpress
#映射mysql文件到宿主机
volumes:
- /opt/dockerdata/mysqldata:/var/lib/mysql
jpress:
depends_on:
- db
links:
- db
#image: fuhai/jpress:latest
#修改为自己的镜像
image: aaa/jpress:0.0.1
ports:
- "8080:8080"
restart: always
environment:
TZ: Asia/Shanghai
JPRESS_DB_HOST: db
JPRESS_DB_PORT: 3306
JPRESS_DB_NAME: jpress
JPRESS_DB_USER: jpress
JPRESS_DB_PASSWORD: jpress
#防止tomcat启动达到几百秒
JAVA_OPTS: -Djava.security.egd=file:/dev/./urandom
volumes:
#war包解压后的ROOT文件夹会出现在宿主机的/opt/dockerdata/webapps目录下,这样容器删除后,之前的修改继续存在
- /opt/dockerdata/webapps:/usr/local/tomcat/webapps/
#把tomcat的日志生成到宿主机
- /opt/dockerdata/logs:/usr/local/tomcat/logs
7、访问服务器的8080端口,显示如下页面,说明安装成功。
8、点击下一步,显示如下页面。相关信息可从docker-compose.yml中获取,主机一栏中填上db。
9、点击下一步,如果显示如下页面,可能是你在上一步输入有误,或者数据库中已经有相关数据了。现在的解决办法是
docker-compose stop
docker-compose rm
然后删除宿主机中映射出的所有mysql文件,重新从步骤6往下走。
10、如果出现如下页面,说明初始化即将成功,填写信息并保存好管理员的用户名和密码,点击完成就初始化成功了。
祝你一切顺利,如有问题欢迎讨论,我会对内容进行相应更新。