FROM nikolaik/python-nodejs:python3.10-nodejs20 USER root # 安装 Traefik ARG TRAEFIK_VERSION=3.1.6 ENV TRAEFIK_CONFIG_FILE=/home/pn/app/traefik/traefik.yml RUN wget -q https://github.com/traefik/traefik/releases/download/v${TRAEFIK_VERSION}/traefik_v${TRAEFIK_VERSION}_linux_amd64.tar.gz \ && tar -xzf traefik_v${TRAEFIK_VERSION}_linux_amd64.tar.gz \ && mv traefik /usr/local/bin/ \ && rm traefik_v${TRAEFIK_VERSION}_linux_amd64.tar.gz \ # 安装 jq 用于解析 JSON,http-server 和 gettext-base(包含 envsubst) && apt-get update && apt-get install -y jq gettext-base curl \ && npm install -g serve \ # 安装 n8n && npm install -g n8n # 切换到 pn 用户 USER pn # 设置工作目录 WORKDIR /home/pn/app # 创建必要的目录 RUN mkdir -p /home/pn/app/traefik /home/pn/app/node /home/pn/app/n8n && \ chown -R pn:pn /home/pn /home/pn/app # 复制配置文件和启动脚本 COPY --chown=pn:pn traefik/traefik.yml /home/pn/app/traefik/ COPY --chown=pn:pn traefik/dynamic.yml /home/pn/app/traefik/ COPY --chown=pn:pn start.sh /home/pn/app/start.sh COPY --chown=pn:pn services.json /home/pn/app/services.json RUN chmod +x /home/pn/app/start.sh # 设置环境变量 ENV TRAEFIK_PORT=7860 \ PYTHON_PORT=8000 \ NODE_PORT=8001 \ N8N_PORT=5678 # 启动容器时运行启动脚本 CMD ["/home/pn/app/start.sh"]