feat(docker): install mise in standalone image for language runtime
Build and Deploy / build-and-push (push) Failing after 12s
Build and Deploy / build-and-push (push) Failing after 12s
This commit is contained in:
+17
-3
@@ -18,7 +18,21 @@ RUN CGO_ENABLED=0 GOOS=linux go build -o /taskpool .
|
|||||||
|
|
||||||
# Production stage
|
# Production stage
|
||||||
FROM alpine:3.19
|
FROM alpine:3.19
|
||||||
RUN apk add --no-cache nginx supervisor
|
|
||||||
|
ENV TZ=Asia/Shanghai \
|
||||||
|
MISE_DATA_DIR=/app/envs/mise \
|
||||||
|
MISE_CONFIG_DIR=/app/envs/mise \
|
||||||
|
MISE_HIDE_UPDATE_WARNING=1 \
|
||||||
|
PATH="/app/envs/mise/shims:/app/envs/mise/bin:/usr/local/bin:/usr/bin:/bin"
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
nginx supervisor bash curl wget ca-certificates tzdata git rsync openssh-client \
|
||||||
|
&& cp /usr/share/zoneinfo/${TZ} /etc/localtime \
|
||||||
|
&& echo "${TZ}" > /etc/timezone \
|
||||||
|
&& curl https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh \
|
||||||
|
&& chmod +x /usr/local/bin/mise \
|
||||||
|
&& mkdir -p /app/envs/mise \
|
||||||
|
&& mise --version
|
||||||
|
|
||||||
# Copy frontend
|
# Copy frontend
|
||||||
COPY --from=frontend-builder /app/web/dist /usr/share/nginx/html
|
COPY --from=frontend-builder /app/web/dist /usr/share/nginx/html
|
||||||
@@ -35,9 +49,9 @@ COPY docker/start-backend.sh /app/start-backend.sh
|
|||||||
|
|
||||||
# Create data directories and ship example config (used when no volume config)
|
# Create data directories and ship example config (used when no volume config)
|
||||||
COPY configs/config.example.ini /app/configs/config.example.ini
|
COPY configs/config.example.ini /app/configs/config.example.ini
|
||||||
RUN mkdir -p /app/data /app/configs /app/envs /app/logs \
|
RUN mkdir -p /app/data /app/configs /app/envs /app/logs /app/data/scripts \
|
||||||
&& chmod +x /app/taskpool /app/start-backend.sh \
|
&& chmod +x /app/taskpool /app/start-backend.sh \
|
||||||
&& apk add --no-cache wget ca-certificates
|
&& ln -sf /app/taskpool /usr/local/bin/taskpool
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
EXPOSE 3000 8052
|
EXPOSE 3000 8052
|
||||||
|
|||||||
+15
-3
@@ -15,8 +15,20 @@ echo "[backend-wrapper] BH_DB_NAME=${BH_DB_NAME:-}"
|
|||||||
echo "[backend-wrapper] BH_DB_PATH=${BH_DB_PATH:-}"
|
echo "[backend-wrapper] BH_DB_PATH=${BH_DB_PATH:-}"
|
||||||
echo "[backend-wrapper] config.ini exists=$([ -f /app/configs/config.ini ] && echo yes || echo no)"
|
echo "[backend-wrapper] config.ini exists=$([ -f /app/configs/config.ini ] && echo yes || echo no)"
|
||||||
|
|
||||||
# 避免空目录挂载导致权限/路径问题
|
# 基础目录
|
||||||
mkdir -p /app/data /app/configs /app/envs /app/logs /app/data/scripts
|
mkdir -p /app/data /app/configs /app/envs /app/logs /app/data/scripts /app/envs/mise
|
||||||
|
|
||||||
# 直接前台运行,日志打到容器 stdout/stderr,方便 docker logs 排查
|
# Mise 环境(挂载 ./envs 后仍可工作)
|
||||||
|
export MISE_DATA_DIR="${MISE_DATA_DIR:-/app/envs/mise}"
|
||||||
|
export MISE_CONFIG_DIR="${MISE_CONFIG_DIR:-/app/envs/mise}"
|
||||||
|
export MISE_HIDE_UPDATE_WARNING=1
|
||||||
|
export PATH="/app/envs/mise/shims:/app/envs/mise/bin:/usr/local/bin:$PATH"
|
||||||
|
|
||||||
|
if command -v mise >/dev/null 2>&1; then
|
||||||
|
echo "[backend-wrapper] mise version: $(mise --version 2>/dev/null | head -n 1)"
|
||||||
|
else
|
||||||
|
echo "[backend-wrapper] WARNING: mise not found in PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 直接前台运行,日志打到容器 stdout/stderr
|
||||||
exec /app/taskpool server
|
exec /app/taskpool server
|
||||||
|
|||||||
Reference in New Issue
Block a user