您好,登錄后才能下訂單哦!
話不多說先上效果圖,先確定是不是你想要達到的結果
##安裝編譯docker 環境
我們這里采用的是nginx1.16.0 版本來進行編譯安裝的,如果有需要你可以自行更改成別的nginx版本,Dockerfile如下
FROM alpine:latest AS alpine-base
WORKDIR /usr/local
#更換apline的源為阿里云的
RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories && \
echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories && \
apk update && \
#安裝wget 和git 我們為了使鏡像最小化這個都放在另外一個鏡像里面來實現
apk add --no-cache wget git && \
#下載nginx包
wget http://nginx.org/download/nginx-1.16.0.tar.gz && \
tar xvf nginx-1.16.0.tar.gz && \
#克隆我們需要的模塊和主題
git clone https://github.com/Naereen/Nginx-Fancyindex-Theme.git && \
git clone https://github.com/aperezdc/ngx-fancyindex.git && \
mkdir /usr/local/nginx-1.16.0/model && \
mv ./ngx-fancyindex /usr/local/nginx-1.16.0/model/
FROM alpine:latest
MAINTAINER zhangshoufu zsf18163201@163.com
WORKDIR /root
#從上面一個鏡像中把我們剛才下載安裝的包拷貝到這個里面
COPY --from=alpine-base /usr/local/nginx-1.16.0 /usr/local/nginx-1.16.0
RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories && \
echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories && \
apk update && \
#安裝編譯安裝需要的依賴
apk add --no-cache gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers curl && \
cd /usr/local/nginx-1.16.0/ && \
#執行編譯安裝
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
#指定安裝擴展模塊的位置
--add-module=/usr/local/nginx-1.16.0/model/ngx-fancyindex \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream --with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.16.0/debian/debuild-base/nginx-1.16.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' && \
make && make install && \
mkdir -p /var/cache/nginx/client_temp && \
rm -rf /usr/local/nginx-1.16.0
#把主題拷貝到網站根目錄下
COPY --from=alpine-base /usr/local/./Nginx-Fancyindex-Theme /etc/nginx/html
EXPOSE 80
CMD ["/bin/sh","-c","nginx -g 'daemon off;'"]
我們執行構建動作
docker build -t apline-nginx:v2.0 -f Dockerfile .
截止目前為止我們的docker 包已經構建完成了,
因為我們打包的docker包里面索引主題放在了/etc/nginx/html下面,所以我們就把網站根目錄設在這個目錄下,然后我們通過掛載的方式把網站目錄掛載到這個目錄下,我們先編寫nginx.conf文件
```nginx.conf
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
fancyindex on;
fancyindex_exact_size off;
fancyindex_localtime on;
fancyindex_header "/Nginx-Fancyindex-Theme-light/header.html";
fancyindex_footer "/Nginx-Fancyindex-Theme-light/footer.html";
fancyindex_ignore "examplefile.html";
fancyindex_ignore "Nginx-Fancyindex-Theme-light";
fancyindex_name_length 255;
server {
listen 80;
server_name localhost;
location / {
autoindex on;
root /etc/nginx/html;
index index.html index.htm;
}
}
}
因為這個里面有兩套主題,一套黑的一套白的,我們上面nginx配置文件使用的是白色的主題,如果我們想使用黑色的只需要把配置文件里面的`Nginx-Fancyindex-Theme-light`更換成`Nginx-Fancyindex-Theme-dark`即可。
然后我們現在開始啟動這個docker 容器
```bash
docker run -id --name voice_nginx -p 9999:80 -v /home/monitor/:/etc/nginx/html/monitor -v /home/monitor/nginx.conf:/etc/nginx/nginx.conf --restart=always apline-nginx:v2.0
啟動完成之后我們就可以在瀏覽器里面打開看到我們想要的界面了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。