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 SPRING_PROFILES_ACTIVE=prod
|
||||
|
||||
# 创建应用用户和目录
|
||||
RUN groupadd -g 1001 app \
|
||||
&& useradd -u 1001 -g app -s /bin/sh -d /app -M app \
|
||||
&& mkdir -p /app/data/upload \
|
||||
&& mkdir -p /app/data/temp \
|
||||
&& mkdir -p /app/data/unzip \
|
||||
&& mkdir -p /app/data/images \
|
||||
&& mkdir -p /app/data/reports \
|
||||
&& mkdir -p /app/data/elasticsearch \
|
||||
&& mkdir -p /app/logs \
|
||||
&& chown -R app:app /app
|
||||
# 创建应用用户和目录(兼容 Debian/Ubuntu 与 Alpine/busybox 工具集)
|
||||
RUN set -eux; \
|
||||
if command -v groupadd >/dev/null 2>&1; then \
|
||||
# Debian/Ubuntu/一般 GNU 工具链
|
||||
groupadd -g 1001 app; \
|
||||
useradd -u 1001 -g app -s /bin/sh -d /app -M app; \
|
||||
elif command -v addgroup >/dev/null 2>&1; then \
|
||||
# adduser/addgroup 工具链:区分 --gid 可用与否
|
||||
if addgroup --help 2>&1 | grep -q -- '--gid'; then \
|
||||
addgroup --gid 1001 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
|
||||
@@ -144,4 +159,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
||||
EXPOSE 9081
|
||||
|
||||
# 启动应用(不使用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