Severian commited on
Commit
c0987db
·
verified ·
1 Parent(s): 9e83698

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +38 -52
Dockerfile CHANGED
@@ -37,66 +37,49 @@ RUN apt-get update && apt-get install -y \
37
  && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \
38
  && locale-gen
39
 
40
- # Set up PostgreSQL directories with standard locations
41
- RUN mkdir -p /var/run/postgresql /var/lib/postgresql/data /var/log/postgresql && \
42
- chown -R user:user /var/run/postgresql /var/lib/postgresql/data /var/log/postgresql && \
43
- chmod 700 /var/lib/postgresql/data
44
-
45
- # Create application directories
46
- RUN mkdir -p /app/api /app/web /data/storage && \
47
- chown -R user:user /app /data && \
48
- chmod 777 /data /app
49
-
50
  # Configure nginx
51
- COPY <<EOF /etc/nginx/nginx.conf
52
- user user;
53
- worker_processes auto;
54
- error_log /var/log/nginx/error.log;
55
- pid /run/nginx.pid;
56
-
57
- events {
58
- worker_connections 1024;
59
- }
 
 
 
 
 
60
 
61
- http {
62
- include /etc/nginx/mime.types;
63
- default_type application/octet-stream;
64
- access_log /var/log/nginx/access.log combined;
65
- sendfile on;
66
- keepalive_timeout 65;
67
-
68
- server {
69
- listen 7860;
70
- server_name _;
71
-
72
- location / {
73
- proxy_pass http://127.0.0.1:3000;
74
- proxy_http_version 1.1;
75
- proxy_set_header Upgrade \$http_upgrade;
76
- proxy_set_header Connection 'upgrade';
77
- proxy_set_header Host \$host;
78
- proxy_cache_bypass \$http_upgrade;
79
- }
80
-
81
- location /api {
82
- proxy_pass http://127.0.0.1:5001;
83
- proxy_http_version 1.1;
84
- proxy_set_header Upgrade \$http_upgrade;
85
- proxy_set_header Connection 'upgrade';
86
- proxy_set_header Host \$host;
87
- proxy_cache_bypass \$http_upgrade;
88
- }
89
  }
90
  }
91
  EOF
92
 
93
- RUN mkdir -p /var/log/nginx && \
 
94
  chown -R user:user /var/log/nginx && \
95
- chown -R user:user /var/lib/nginx && \
96
- chown -R user:user /etc/nginx && \
97
  touch /run/nginx.pid && \
98
  chown -R user:user /run/nginx.pid
99
 
 
 
 
 
 
 
 
 
 
 
100
  # Switch to user for remaining operations
101
  USER user
102
 
@@ -220,12 +203,15 @@ cd /app/api && poetry run python -m gunicorn app:app \\\n\
220
  # Start frontend server\n\
221
  cd /app/web && PORT=3000 node server.js &\n\
222
  \n\
223
- # Start nginx\n\
224
- nginx -g "daemon off;" &\n\
225
  \n\
226
  wait' > /app/entrypoint.sh && \
227
  chmod +x /app/entrypoint.sh
228
 
 
 
 
229
  WORKDIR /app
230
 
231
  CMD ["./entrypoint.sh"]
 
37
  && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \
38
  && locale-gen
39
 
 
 
 
 
 
 
 
 
 
 
40
  # Configure nginx
41
+ RUN rm /etc/nginx/sites-enabled/default || true
42
+ COPY <<EOF /etc/nginx/sites-available/dify
43
+ server {
44
+ listen 7860;
45
+ server_name _;
46
+
47
+ location / {
48
+ proxy_pass http://127.0.0.1:3000;
49
+ proxy_http_version 1.1;
50
+ proxy_set_header Upgrade \$http_upgrade;
51
+ proxy_set_header Connection 'upgrade';
52
+ proxy_set_header Host \$host;
53
+ proxy_cache_bypass \$http_upgrade;
54
+ }
55
 
56
+ location /api {
57
+ proxy_pass http://127.0.0.1:5001;
58
+ proxy_http_version 1.1;
59
+ proxy_set_header Upgrade \$http_upgrade;
60
+ proxy_set_header Connection 'upgrade';
61
+ proxy_set_header Host \$host;
62
+ proxy_cache_bypass \$http_upgrade;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
  }
65
  EOF
66
 
67
+ RUN ln -s /etc/nginx/sites-available/dify /etc/nginx/sites-enabled/ && \
68
+ mkdir -p /var/log/nginx && \
69
  chown -R user:user /var/log/nginx && \
 
 
70
  touch /run/nginx.pid && \
71
  chown -R user:user /run/nginx.pid
72
 
73
+ # Set up PostgreSQL directories with standard locations
74
+ RUN mkdir -p /var/run/postgresql /var/lib/postgresql/data /var/log/postgresql && \
75
+ chown -R user:user /var/run/postgresql /var/lib/postgresql/data /var/log/postgresql && \
76
+ chmod 700 /var/lib/postgresql/data
77
+
78
+ # Create application directories
79
+ RUN mkdir -p /app/api /app/web /data/storage && \
80
+ chown -R user:user /app /data && \
81
+ chmod 777 /data /app
82
+
83
  # Switch to user for remaining operations
84
  USER user
85
 
 
203
  # Start frontend server\n\
204
  cd /app/web && PORT=3000 node server.js &\n\
205
  \n\
206
+ # Start nginx as root (required for port 7860)\n\
207
+ sudo nginx -g "daemon off;" &\n\
208
  \n\
209
  wait' > /app/entrypoint.sh && \
210
  chmod +x /app/entrypoint.sh
211
 
212
+ # Add sudo capabilities for nginx
213
+ RUN echo "user ALL=(ALL) NOPASSWD: /usr/sbin/nginx" >> /etc/sudoers
214
+
215
  WORKDIR /app
216
 
217
  CMD ["./entrypoint.sh"]