sft0farid commited on
Commit
b46d0cd
·
verified ·
1 Parent(s): 2d80cb2

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +62 -68
Dockerfile CHANGED
@@ -39,78 +39,72 @@ RUN mkdir -p \
39
  /data/supervisor/run \
40
  && chown -R user:user /app /data
41
 
42
- # 6. supervisord.conf — через cat heredoc, % не интерпретируется
43
- RUN cat > /data/supervisor/conf.d/supervisord.conf << 'EOF'
44
- [supervisord]
45
- nodaemon=true
46
- logfile=/dev/stdout
47
- logfile_maxbytes=0
48
- pidfile=/data/supervisor/run/supervisord.pid
49
-
50
- [program:bifrost]
51
- command=python /app/bifrost/main.py --port 7860 --host 0.0.0.0
52
- directory=/data/bifrost
53
- autostart=true
54
- autorestart=true
55
- stdout_logfile=/dev/stdout
56
- stdout_logfile_maxbytes=0
57
- stderr_logfile=/dev/stderr
58
- stderr_logfile_maxbytes=0
59
-
60
- [program:aiclient]
61
- command=node /app/aiclient2api/src/core/master.js
62
- environment=PORT=3000
63
- directory=/app/aiclient2api
64
- autostart=true
65
- autorestart=true
66
- stdout_logfile=/dev/stdout
67
- stdout_logfile_maxbytes=0
68
- stderr_logfile=/dev/stderr
69
- stderr_logfile_maxbytes=0
70
-
71
- [program:kirogo]
72
- command=kiro-go
73
- environment=PORT=8082,ADMIN_PASSWORD=%(ENV_KIRO_ADMIN_PASSWORD)s
74
- directory=/data/kirogo
75
- autostart=true
76
- autorestart=true
77
- stdout_logfile=/dev/stdout
78
- stdout_logfile_maxbytes=0
79
- stderr_logfile=/dev/stderr
80
- stderr_logfile_maxbytes=0
81
-
82
- [program:zrok]
83
- command=/app/start_zrok.sh
84
- autostart=true
85
- autorestart=true
86
- stdout_logfile=/dev/stdout
87
- stdout_logfile_maxbytes=0
88
- stderr_logfile=/dev/stderr
89
- stderr_logfile_maxbytes=0
90
- EOF
91
 
92
  # 7. Скрипт zrok
93
- RUN cat > /app/start_zrok.sh << 'EOF'
94
- #!/bin/bash
95
- if [ -z "$ZROK_TOKEN" ] || [ -z "$ZROK_SHARE_NAME" ]; then
96
- echo "ZROK_TOKEN or ZROK_SHARE_NAME not set, skipping zrok"
97
- sleep infinity
98
- fi
99
- zrok enable "$ZROK_TOKEN" --headless 2>/dev/null || true
100
- exec zrok share reserved "$ZROK_SHARE_NAME" --headless
101
- EOF
102
- RUN chmod +x /app/start_zrok.sh
103
 
104
  # 8. Entrypoint
105
- RUN cat > /app/start.sh << 'EOF'
106
- #!/bin/bash
107
- if [ ! -L /app/aiclient2api/configs ]; then
108
- rm -rf /app/aiclient2api/configs
109
- ln -s /data/aiclient2api/configs /app/aiclient2api/configs
110
- fi
111
- exec /usr/bin/supervisord -c /data/supervisor/conf.d/supervisord.conf
112
- EOF
113
- RUN chmod +x /app/start.sh
114
 
115
  # 9. Устанавливаем приложения под user
116
  USER user
 
39
  /data/supervisor/run \
40
  && chown -R user:user /app /data
41
 
42
+ # 6. supervisord.conf
43
+ RUN echo '[supervisord]' > /data/supervisor/conf.d/supervisord.conf \
44
+ && echo 'nodaemon=true' >> /data/supervisor/conf.d/supervisord.conf \
45
+ && echo 'logfile=/dev/stdout' >> /data/supervisor/conf.d/supervisord.conf \
46
+ && echo 'logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
47
+ && echo 'pidfile=/data/supervisor/run/supervisord.pid' >> /data/supervisor/conf.d/supervisord.conf \
48
+ && echo '' >> /data/supervisor/conf.d/supervisord.conf \
49
+ && echo '[program:bifrost]' >> /data/supervisor/conf.d/supervisord.conf \
50
+ && echo 'command=python /app/bifrost/main.py --port 7860 --host 0.0.0.0' >> /data/supervisor/conf.d/supervisord.conf \
51
+ && echo 'directory=/data/bifrost' >> /data/supervisor/conf.d/supervisord.conf \
52
+ && echo 'autostart=true' >> /data/supervisor/conf.d/supervisord.conf \
53
+ && echo 'autorestart=true' >> /data/supervisor/conf.d/supervisord.conf \
54
+ && echo 'stdout_logfile=/dev/stdout' >> /data/supervisor/conf.d/supervisord.conf \
55
+ && echo 'stdout_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
56
+ && echo 'stderr_logfile=/dev/stderr' >> /data/supervisor/conf.d/supervisord.conf \
57
+ && echo 'stderr_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
58
+ && echo '' >> /data/supervisor/conf.d/supervisord.conf \
59
+ && echo '[program:aiclient]' >> /data/supervisor/conf.d/supervisord.conf \
60
+ && echo 'command=node /app/aiclient2api/src/core/master.js' >> /data/supervisor/conf.d/supervisord.conf \
61
+ && echo 'environment=PORT=3000' >> /data/supervisor/conf.d/supervisord.conf \
62
+ && echo 'directory=/app/aiclient2api' >> /data/supervisor/conf.d/supervisord.conf \
63
+ && echo 'autostart=true' >> /data/supervisor/conf.d/supervisord.conf \
64
+ && echo 'autorestart=true' >> /data/supervisor/conf.d/supervisord.conf \
65
+ && echo 'stdout_logfile=/dev/stdout' >> /data/supervisor/conf.d/supervisord.conf \
66
+ && echo 'stdout_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
67
+ && echo 'stderr_logfile=/dev/stderr' >> /data/supervisor/conf.d/supervisord.conf \
68
+ && echo 'stderr_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
69
+ && echo '' >> /data/supervisor/conf.d/supervisord.conf \
70
+ && echo '[program:kirogo]' >> /data/supervisor/conf.d/supervisord.conf \
71
+ && echo 'command=kiro-go' >> /data/supervisor/conf.d/supervisord.conf \
72
+ && echo 'environment=PORT=8082,ADMIN_PASSWORD=%(ENV_KIRO_ADMIN_PASSWORD)s' >> /data/supervisor/conf.d/supervisord.conf \
73
+ && echo 'directory=/data/kirogo' >> /data/supervisor/conf.d/supervisord.conf \
74
+ && echo 'autostart=true' >> /data/supervisor/conf.d/supervisord.conf \
75
+ && echo 'autorestart=true' >> /data/supervisor/conf.d/supervisord.conf \
76
+ && echo 'stdout_logfile=/dev/stdout' >> /data/supervisor/conf.d/supervisord.conf \
77
+ && echo 'stdout_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
78
+ && echo 'stderr_logfile=/dev/stderr' >> /data/supervisor/conf.d/supervisord.conf \
79
+ && echo 'stderr_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
80
+ && echo '' >> /data/supervisor/conf.d/supervisord.conf \
81
+ && echo '[program:zrok]' >> /data/supervisor/conf.d/supervisord.conf \
82
+ && echo 'command=/app/start_zrok.sh' >> /data/supervisor/conf.d/supervisord.conf \
83
+ && echo 'autostart=true' >> /data/supervisor/conf.d/supervisord.conf \
84
+ && echo 'autorestart=true' >> /data/supervisor/conf.d/supervisord.conf \
85
+ && echo 'stdout_logfile=/dev/stdout' >> /data/supervisor/conf.d/supervisord.conf \
86
+ && echo 'stdout_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf \
87
+ && echo 'stderr_logfile=/dev/stderr' >> /data/supervisor/conf.d/supervisord.conf \
88
+ && echo 'stderr_logfile_maxbytes=0' >> /data/supervisor/conf.d/supervisord.conf
 
 
89
 
90
  # 7. Скрипт zrok
91
+ RUN echo '#!/bin/bash' > /app/start_zrok.sh \
92
+ && echo 'if [ -z "$ZROK_TOKEN" ] || [ -z "$ZROK_SHARE_NAME" ]; then' >> /app/start_zrok.sh \
93
+ && echo ' echo "ZROK_TOKEN or ZROK_SHARE_NAME not set, skipping zrok"' >> /app/start_zrok.sh \
94
+ && echo ' sleep infinity' >> /app/start_zrok.sh \
95
+ && echo 'fi' >> /app/start_zrok.sh \
96
+ && echo 'zrok enable "$ZROK_TOKEN" --headless 2>/dev/null || true' >> /app/start_zrok.sh \
97
+ && echo 'exec zrok share reserved "$ZROK_SHARE_NAME" --headless' >> /app/start_zrok.sh \
98
+ && chmod +x /app/start_zrok.sh
 
 
99
 
100
  # 8. Entrypoint
101
+ RUN echo '#!/bin/bash' > /app/start.sh \
102
+ && echo 'if [ ! -L /app/aiclient2api/configs ]; then' >> /app/start.sh \
103
+ && echo ' rm -rf /app/aiclient2api/configs' >> /app/start.sh \
104
+ && echo ' ln -s /data/aiclient2api/configs /app/aiclient2api/configs' >> /app/start.sh \
105
+ && echo 'fi' >> /app/start.sh \
106
+ && echo 'exec /usr/bin/supervisord -c /data/supervisor/conf.d/supervisord.conf' >> /app/start.sh \
107
+ && chmod +x /app/start.sh
 
 
108
 
109
  # 9. Устанавливаем приложения под user
110
  USER user