最初版本

This commit is contained in:
sa19840531
2026-08-15 14:51:51 +08:00
parent 4e01df4dce
commit ea47ea4449
176 changed files with 21009 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
# 只打包「游客在线客服聊天框」
# 前端:官方 Chatwoot production 镜像(构建期已 assets:precompile / Vite 编译)
# 运行:RAILS_ENV=production,不跑 development / vite / pnpm / bundle install
#
# 对照:https://github.com/chatwoot/chatwoot/blob/v4.16.2/docker-compose.production.yaml
# https://github.com/chatwoot/chatwoot/blob/v4.16.2/docker/Dockerfile
FROM chatwoot/chatwoot:v4.16.2
USER root
# 确认生产静态资源已存在(官方镜像 precompile 产物)
RUN test -d /app/public/assets \
&& test -d /app/public/vite/assets \
&& test "$(ls -A /app/public/vite/assets 2>/dev/null | wc -l)" -gt 0 \
&& echo "[ok] Chatwoot production frontend assets present"
RUN apk add --no-cache python3 py3-pip py3-virtualenv
WORKDIR /opt/guest-cs
RUN python3 -m venv /opt/guest-cs/.venv
ENV PATH="/opt/guest-cs/.venv/bin:$PATH"
COPY flask/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY flask/ .
COPY start-chat.sh /usr/local/bin/start-chat.sh
RUN chmod +x /usr/local/bin/start-chat.sh \
&& mkdir -p /app/storage \
&& sed -i 's/\r$//' /usr/local/bin/start-chat.sh
# 与 docker-compose.production.yaml 对齐;聊天框经 7788 代理 widget
ENV RAILS_ENV=production \
NODE_ENV=production \
INSTALLATION_ENV=docker \
RAILS_SERVE_STATIC_FILES=true \
BUNDLE_WITHOUT=development:test \
EXECJS_RUNTIME=Disabled \
APP_HOST=0.0.0.0 \
APP_PORT=7788 \
APP_DEBUG=false \
CHATWOOT_GUEST_PROXY_TARGET=http://127.0.0.1:3000 \
CHATWOOT_GUEST_API_BASE=http://127.0.0.1:3000 \
CHATWOOT_GUEST_BASE_URL=http://127.0.0.1:7788/cw
# 对外产品口是 7788(聊天框);3000 仅容器内给 widget API
EXPOSE 7788
WORKDIR /app
ENTRYPOINT ["/usr/local/bin/start-chat.sh"]