Akemi

使用Dockerfile打包与发布一个tomcat博客

2024/10/05

环境

1
2
3
4
AlmaLinux release 9.4 (Seafoam Ocelot)
jdk 1.8
tomcat 8
docker-ce 27.2.1

准备文件

dockerfile
jdk-8u45-linux-x64.rpm
apache-tomcat-8.5.43.tar.gz
Centos-vault-8.5.2111.repo

因为centos的docker镜像使用的是centos8,而centos8已经不维护了,所以需要使用老repo文件

写dockerfile

1
2
3
4
5
6
7
8
9
10
11
FROM centos:latest
MAINTAINER wangsheng
WORKDIR /usr/local/
RUN rm -rf /etc/yum.repos.d/*
COPY Centos-vault-8.5.2111.repo /etc/yum.repos.d/
ADD jdk-8u45-linux-x64.rpm .
ADD apache-tomcat-8.5.43.tar.gz .
RUN rpm -ivh jdk-8u45-linux-x64.rpm
RUN mv apache-tomcat-8.5.43 tomcat8 && rm -rf apache-tomcat-8.5.43.tar.gz
ENTRYPOINT /usr/local/tomcat8/bin/startup.sh && tail -f /usr/local/tomcat8/logs/catalina.out
EXPOSE 8080

构建镜像并测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker build -t="tomcat8" . --load
docker images | grep tomcat
tomcat8 latest c1d59aff43f1 About a minute ago 751MB

#测试一下,测试成功
docker run -itd --name test -p 8080:8080/tcp --ulimit nofile=65535:65535 --ulimit nproc=65535:65535 tomcat8:latest /bin/bash
curl -s -o /dev/null localhost:8080 && echo $?
0

#清理测试容器
docker rm -f test

#顺便传一下私仓
docker tag tomcat8:latest 192.168.10.130/library/tomcat8:v1
docker push 192.168.10.130/library/tomcat8:v1

启用镜像与搭建博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run -itd --name jpress-tomcat -p 8080:8080/tcp \
--ulimit nofile=65535:65535 --ulimit nproc=65535:65535 \
-v /root/tomcat-data:/usr/local/tomcat8/webapps \
tomcat8:latest /bin/bash

# 没报错
docker ps |grep jpress
4e36a72a38fd tomcat8:latest "/bin/sh -c '/usr/lo…" 10 seconds ago Up 10 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp jpress-tomcat
curl -s -o /dev/null localhost:8080 && echo $?
0

#将jpress的jar包放进去
mkdir /root/tomcat-data/ROOT
cp jpress-web-newest.war /root/tomcat-data/jpress.war
ls /root/tomcat-data/
ROOT jpress jpress.war

访问网页测试,部署成功

CATALOG
  1. 1. 准备文件
  2. 2. 写dockerfile
  3. 3. 构建镜像并测试
  4. 4. 启用镜像与搭建博客