背景:
在容器应用商店中,我们要给 helm chart 添加icon标签, 需要一个图片服务器
解决办法:
使用docker nginx 搭建
1.编写 nginx配置文件
server {
listen 80;
server_name localhost;
#(5)
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#(1)
location /images/ {
root /mnt/;
autoindex on; #(2)
autoindex_exact_size off; #(3)
autoindex_localtime on; #(4)
charset utf-8,gbk; #(5)
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
参数说明:
(1):添加图片目录映射,映射目录为/mnt/images/
(2):在Nginx下默认是不允许列出整个目录的。如需此功能,将该项设置为on
(3):默认为on,显示出文件的确切大小,单位是bytes
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
(4):默认为off,显示的文件时间为GMT时间
注意:改为on后,显示的文件时间为文件的服务器时间
(5):设置编码(防止中文乱码),可以设置对全局生效或者部分路径生效
2.编写Dockerfile
FROM nginx:latest
MAINTAINER username
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
3.build镜像
docker build -f dockerfile -t image:v1 .
4.运行
docker run -d --name image -p 8089:80 -v images:/mnt/images image:v1
5.验证
curl localhost:8089/images/1.png