File size: 1,374 Bytes
7695663
 
 
 
 
47534cd
7695663
 
 
 
 
09b474c
 
 
 
 
 
7695663
 
 
 
 
 
 
c03007d
e41eef9
e3a4f3c
7695663
 
c03007d
cd8aac4
7695663
 
 
 
 
 
 
09b474c
 
7695663
 
c03007d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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"]