traefik / Dockerfile
orztv
update
e41eef9
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"]