Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像

一、制作openjdk8基础镜像【基于自定义alpine-3.18.0:v1 】

docker pull maven:3.5.0-jdk-8-alpine
78.56 MB
https://hub.docker.com/_/maven/tags?page=8&name=alpine

openjdk二进制下载地址
https://blog.csdn.net/fenglllle/article/details/124786948
https://adoptopenjdk.net/releases.html
在这里插入图片描述
在这里插入图片描述
Dockerfile中,source /etc/profile不能加载的原因
为什么还需要选择使用他的原因:三 中,tomcat普通用户交互式启动tomcat

#在 Docker 容器中,/etc/profile 文件不会在容器启动时自动执行,这是因为 Docker 容器通常不会启动交互式登录 shell,而是直接运行指定的命令。/etc/profile 和用户的 shell 配置文件(如 .bash_profile[root]、.bashrc[普通用户] 等)是在交互式登录 shell 中被加载的。如果容器启动命令不涉及启动一个交互式 shell,这些文件就不会被执行。
解决方法
如果你需要在 Docker 容器中自动加载 /etc/profile 或其他环境配置,你可以采取以下几种方法之一:
1. 修改容器的启动命令
确保容器启动时使用交互式 shell。例如,你可以在 Dockerfile 中设置 CMD 或 ENTRYPOINT 指令来启动一个 Bash shell:
这样,当你以交互式方式运行容器时(使用 docker run -it <image>),它将启动 Bash,该 Bash 会加载 /etc/profile。
2. 在 Dockerfile 中使用环境变量
对于一些简单的环境设置,你也可以直接在 Dockerfile 中使用 ENV 指令来设置环境变量,这样就不需要依赖 /etc/profile

root@ubuntu:~/system/openjdk# cat profile

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

export PAGER=less
umask 022

# use nicer PS1 for bash and busybox ash
if [ -n "$BASH_VERSION" -o "$BB_ASH_VERSION" ]; then
	PS1='\h:\w\$ '
# use nicer PS1 for zsh
elif [ -n "$ZSH_VERSION" ]; then
	PS1='%m:%~%# '
# set up fallback default PS1
else
	: "${
    
    HOSTNAME:=$(hostname)}"
	PS1='${
    
    HOSTNAME%%.*}:$PWD'
	[ "$(id -u)" -eq 0 ] && PS1="${
    
    PS1}# " || PS1
好的,我来为您讲解一下如何制作一个基于 DockerTomcat 镜像。 首先,您需要准备一个 Dockerfile 文件,内容如下: ```Dockerfile # 指定基础镜像 FROM openjdk:8-jre-alpine # 设置时区为上海 RUN apk add --no-cache tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone && \ apk del tzdata # 下载并解压 Tomcat ENV TOMCAT_MAJOR=8 \ TOMCAT_VERSION=8.5.61 RUN wget -O /tmp/apache-tomcat.tar.gz https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR}/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz && \ tar -xzf /tmp/apache-tomcat.tar.gz -C /opt && \ ln -s /opt/apache-tomcat-${TOMCAT_VERSION} /opt/tomcat && \ rm /tmp/apache-tomcat.tar.gz # 设置环境变量 ENV CATALINA_HOME /opt/tomcat # 添加 Tomcat 用户 RUN addgroup -S tomcat && \ adduser -S -G tomcat -s /bin/false -h ${CATALINA_HOME} tomcat && \ chown -R tomcat:tomcat ${CATALINA_HOME} # 暴露 Tomcat 端口 EXPOSE 8080 # 启动 Tomcat CMD ["${CATALINA_HOME}/bin/catalina.sh", "run"] ``` 然后,您可以执行以下命令来构建并运行容器: ```bash # 构建镜像 docker build -t my-tomcat . # 运行容器 docker run -it --rm -p 8080:8080 my-tomcat ``` 这样就可以在本地的 8080 端口访问 Tomcat 了。如果您需要将镜像上传到 Docker Hub 或其他 Docker 镜像仓库,可以执行以下命令: ```bash # 登录 Docker Hub docker login # 标记镜像 docker tag my-tomcat <your-docker-id>/my-tomcat # 推送镜像 docker push <your-docker-id>/my-tomcat ``` 希望这篇回答能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值