cloudpasteview / Dockerfile
dragg2's picture
Update Dockerfile
45b99f3 verified
raw
history blame
2.09 kB
FROM ymlisoft/kkfileview
USER root
# 安装 Nginx、xvfb 和密码工具
RUN apt-get update && apt-get install -y \
nginx \
apache2-utils \
xvfb \
&& rm -rf /var/lib/apt/lists/*
ENV SERVER_PORT=8012
ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
ENV AUTH_USERNAME=admin
ENV AUTH_PASSWORD=123456
# 配置 Nginx
RUN rm -f /etc/nginx/sites-enabled/default && \
printf 'server {\n\
listen 7860;\n\
server_name _;\n\
\n\
# 密码保护\n\
auth_basic "kkFileView Access";\n\
auth_basic_user_file /etc/nginx/.htpasswd;\n\
\n\
location / {\n\
proxy_pass http://127.0.0.1:8012;\n\
proxy_set_header Host $host;\n\
proxy_set_header X-Real-IP $remote_addr;\n\
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\
proxy_set_header X-Forwarded-Proto $scheme;\n\
proxy_buffering off;\n\
}\n\
}\n' > /etc/nginx/sites-available/kkfileview && \
ln -s /etc/nginx/sites-available/kkfileview /etc/nginx/sites-enabled/
# 启动脚本
RUN printf '#!/bin/bash\n\
set -e\n\
\n\
echo "=== kkFileView with Password Protection ==="\n\
echo ""\n\
\n\
# 创建密码文件\n\
echo "Creating password file..."\n\
htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
echo "✓ Username: $AUTH_USERNAME"\n\
echo "✓ Password: [HIDDEN]"\n\
echo ""\n\
\n\
# 启动 Xvfb\n\
echo "Starting Xvfb..."\n\
Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
export DISPLAY=:99\n\
sleep 2\n\
echo "✓ Xvfb started"\n\
echo ""\n\
\n\
# 启动 kkFileView(后台运行在 8012)\n\
echo "Starting kkFileView on port 8012..."\n\
/opt/kkFileView/bin/kkFileView --server.port=8012 >/tmp/kkfileview.log 2>&1 &\n\
KKFILEVIEW_PID=$!\n\
echo "✓ kkFileView PID: $KKFILEVIEW_PID"\n\
\n\
# 等待 kkFileView 启动\n\
echo "Waiting for kkFileView to be ready..."\n\
sleep 10\n\
\n\
# 启动 Nginx)\n\
echo "Starting Nginx on port 7860..."\n\
echo "✓ Ready! Access with username and password"\n\
echo ""\n\
nginx -g "daemon off;"\n' > /start.sh && \
chmod +x /start.sh
EXPOSE 7860
CMD ["/start.sh"]