test
This commit is contained in:
39
Dockerfile
39
Dockerfile
@@ -109,17 +109,32 @@ FROM base
|
|||||||
ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.awt.headless=true"
|
ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.awt.headless=true"
|
||||||
ENV SPRING_PROFILES_ACTIVE=prod
|
ENV SPRING_PROFILES_ACTIVE=prod
|
||||||
|
|
||||||
# 创建应用用户和目录
|
# 创建应用用户和目录(兼容 Debian/Ubuntu 与 Alpine/busybox 工具集)
|
||||||
RUN groupadd -g 1001 app \
|
RUN set -eux; \
|
||||||
&& useradd -u 1001 -g app -s /bin/sh -d /app -M app \
|
if command -v groupadd >/dev/null 2>&1; then \
|
||||||
&& mkdir -p /app/data/upload \
|
# Debian/Ubuntu/一般 GNU 工具链
|
||||||
&& mkdir -p /app/data/temp \
|
groupadd -g 1001 app; \
|
||||||
&& mkdir -p /app/data/unzip \
|
useradd -u 1001 -g app -s /bin/sh -d /app -M app; \
|
||||||
&& mkdir -p /app/data/images \
|
elif command -v addgroup >/dev/null 2>&1; then \
|
||||||
&& mkdir -p /app/data/reports \
|
# adduser/addgroup 工具链:区分 --gid 可用与否
|
||||||
&& mkdir -p /app/data/elasticsearch \
|
if addgroup --help 2>&1 | grep -q -- '--gid'; then \
|
||||||
&& mkdir -p /app/logs \
|
addgroup --gid 1001 app; \
|
||||||
&& chown -R app:app /app
|
adduser --disabled-password --shell /bin/sh --uid 1001 --ingroup app app; \
|
||||||
|
else \
|
||||||
|
addgroup -g 1001 app; \
|
||||||
|
adduser -D -s /bin/sh -u 1001 -G app app; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo 'no user/group management tools found' >&2; exit 1; \
|
||||||
|
fi; \
|
||||||
|
mkdir -p /app/data/upload \
|
||||||
|
/app/data/temp \
|
||||||
|
/app/data/unzip \
|
||||||
|
/app/data/images \
|
||||||
|
/app/data/reports \
|
||||||
|
/app/data/elasticsearch \
|
||||||
|
/app/logs; \
|
||||||
|
chown -R app:app /app
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@@ -144,4 +159,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|||||||
EXPOSE 9081
|
EXPOSE 9081
|
||||||
|
|
||||||
# 启动应用(不使用tini,直接启动)
|
# 启动应用(不使用tini,直接启动)
|
||||||
CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
|
CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
|
||||||
|
|||||||
9
operations-log.md
Normal file
9
operations-log.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# 操作留痕(Codex)
|
||||||
|
|
||||||
|
- 时间:2025-11-01 19:35(UTC+8)
|
||||||
|
- 动作:修改 Dockerfile 创建应用用户命令
|
||||||
|
- 位置:Dockerfile(运行阶段“创建应用用户和目录”)
|
||||||
|
- 变更:将原使用 addgroup/adduser 的写法替换为兼容 Debian/Ubuntu 与 Alpine 的健壮分支逻辑(优先使用 `groupadd/useradd`,回退到 `addgroup/adduser` 并按是否支持 `--gid` 区分参数)。
|
||||||
|
- 目的:修复构建阶段报错“Option g is ambiguous (gecos, gid, group)”,避免不同基础镜像工具链参数差异导致失败。
|
||||||
|
- 工具:apply_patch(补丁写入)
|
||||||
|
- 结果:补丁应用成功,建议以 `docker build --no-cache` 重新构建验证。
|
||||||
Reference in New Issue
Block a user