Create Dockerfile
Browse files- Dockerfile +44 -0
Dockerfile
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 使用官方Ubuntu基础镜像
|
| 2 |
+
FROM ubuntu:22.04
|
| 3 |
+
|
| 4 |
+
# 设置环境变量
|
| 5 |
+
ENV TZ=Asia/Shanghai \
|
| 6 |
+
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \
|
| 7 |
+
APP_USER=reader \
|
| 8 |
+
APP_HOME=/app
|
| 9 |
+
|
| 10 |
+
# 安装Java及其他依赖
|
| 11 |
+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
|
| 12 |
+
&& apt-get update \
|
| 13 |
+
&& apt-get install -y --no-install-recommends \
|
| 14 |
+
openjdk-17-jdk \ # 安装完整的JDK环境
|
| 15 |
+
ca-certificates \
|
| 16 |
+
curl \
|
| 17 |
+
unzip \
|
| 18 |
+
bash \
|
| 19 |
+
&& apt-get clean \
|
| 20 |
+
&& rm -rf /var/lib/apt/lists/* \
|
| 21 |
+
# 创建专用用户
|
| 22 |
+
&& useradd -r -u 1000 -m -d $APP_HOME -s /bin/bash $APP_USER \
|
| 23 |
+
&& chown -R $APP_USER:$APP_USER $APP_HOME
|
| 24 |
+
|
| 25 |
+
# 配置Java环境路径
|
| 26 |
+
ENV PATH=$JAVA_HOME/bin:$PATH
|
| 27 |
+
|
| 28 |
+
# 设置工作目录和用户
|
| 29 |
+
WORKDIR $APP_HOME
|
| 30 |
+
USER $APP_USER
|
| 31 |
+
|
| 32 |
+
# 复制安装脚本
|
| 33 |
+
COPY --chown=reader:reader install_reader.sh ./
|
| 34 |
+
|
| 35 |
+
# 脚本适配修改
|
| 36 |
+
RUN chmod +x install_reader.sh \
|
| 37 |
+
&& sed -i 's|./bin/startup.sh -m single|exec &|' install_reader.sh
|
| 38 |
+
|
| 39 |
+
# 健康检查
|
| 40 |
+
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
|
| 41 |
+
CMD curl -fs http://localhost:8080/ || exit 1
|
| 42 |
+
|
| 43 |
+
# 容器入口
|
| 44 |
+
ENTRYPOINT [ "./install_reader.sh" ]
|