ShayanRl commited on
Commit
01a501d
·
verified ·
1 Parent(s): 126f272
Files changed (1) hide show
  1. Dockerfile +13 -55
Dockerfile CHANGED
@@ -1,35 +1,14 @@
1
- # 1. Traefik stage
2
- FROM traefik as traefik-stage
3
 
4
- # Set Traefik command options in a single CMD instruction
5
- CMD ["traefik",
6
- "--api=true",
7
- "--api.insecure=true",
8
- "--api.dashboard=true",
9
- "--providers.docker=true",
10
- "--providers.docker.exposedbydefault=false",
11
- "--entrypoints.websecure.address=:443",
12
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true",
13
- "--certificatesresolvers.mytlschallenge.acme.email=shayanrl87@gmail.com",
14
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"]
15
 
16
- # Expose ports for Traefik
17
- EXPOSE 80 443
18
-
19
- # Mount volumes
20
- VOLUME ["/root/data/n8n/letsencrypt:/letsencrypt", "/var/run/docker.sock:/var/run/docker.sock:ro"]
21
-
22
- # 2. InitContainer stage for permission adjustment
23
- FROM busybox as init-stage
24
-
25
- # Command to change ownership of the .n8n directory
26
- CMD ["sh", "-c", "chown -R 1000:1000 /home/node/.n8n"]
27
-
28
- # Mount the volume that needs permission changes
29
- VOLUME ["/root/data/.n8n:/home/node/.n8n"]
30
-
31
- # 3. n8n stage
32
- FROM docker.n8n.io/n8nio/n8n as n8n-stage
33
 
34
  # Set environment variables
35
  ENV N8N_HOST=shayanrl-n8n.hf.space \
@@ -38,29 +17,8 @@ ENV N8N_HOST=shayanrl-n8n.hf.space \
38
  NODE_ENV=production \
39
  WEBHOOK_URL=https://shayanrl-n8n.hf.space/app1
40
 
41
- # Expose the port for n8n
42
- EXPOSE 7860
43
-
44
- # Mount necessary volumes
45
- VOLUME ["/var/run/docker.sock", "/root/data/.n8n:/home/node/.n8n"]
46
-
47
- # Labels for Traefik routing
48
- LABEL traefik.enable=true
49
- LABEL traefik.http.routers.n8n.rule=Host('shayanrl-n8n.hf.space')
50
- LABEL traefik.http.routers.n8n.tls=true
51
- LABEL traefik.http.routers.n8n.entrypoints=websecure
52
- LABEL traefik.http.routers.n8n.rule=PathPrefix('/app1{regex:$$|/.*}')
53
- LABEL traefik.http.middlewares.n8n-stripprefix.stripprefix.prefixes=/app1
54
- LABEL traefik.http.routers.n8n.middlewares=n8n-stripprefix
55
- LABEL traefik.http.routers.n8n.tls.certresolver=mytlschallenge
56
- LABEL traefik.http.middlewares.n8n.headers.SSLRedirect=true
57
- LABEL traefik.http.middlewares.n8n.headers.STSSeconds=315360000
58
- LABEL traefik.http.middlewares.n8n.headers.browserXSSFilter=true
59
- LABEL traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
60
- LABEL traefik.http.middlewares.n8n.headers.forceSTSHeader=true
61
- LABEL traefik.http.middlewares.n8n.headers.SSLHost=shayanrl-n8n.hf.space
62
- LABEL traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
63
- LABEL traefik.http.middlewares.n8n.headers.STSPreload=true
64
 
65
- # Command to run n8n after permissions are set
66
- CMD ["n8n", "start"]
 
1
+ # Use an appropriate base image
2
+ FROM node:18
3
 
4
+ # Install Traefik and n8n
5
+ RUN apt-get update && apt-get install -y \
6
+ traefik \
7
+ && npm install -g n8n
 
 
 
 
 
 
 
8
 
9
+ # Copy the custom startup script
10
+ COPY start.sh /start.sh
11
+ RUN chmod +x /start.sh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  # Set environment variables
14
  ENV N8N_HOST=shayanrl-n8n.hf.space \
 
17
  NODE_ENV=production \
18
  WEBHOOK_URL=https://shayanrl-n8n.hf.space/app1
19
 
20
+ # Expose necessary ports
21
+ EXPOSE 80 443 7860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
+ # Start all services
24
+ CMD ["/start.sh"]