参考

  • nginx,https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/

    Dockerfile

    1. FROM nginx:alpine
    2. WORKDIR /
    3. COPY . .
    4. WORKDIR /etc/nginx/conf.d/
    5. COPY default.conf .

    default.conf

  • alpine 镜像自带了 /etc/nginx/conf.d 这个目录和 nginx.conf 的配置

  • 修改这个静态页面,只需要把 nginx 自带的 index.html 替换为 dist 包中的 index 即可。替换方式是修改 locationroot /dist;

    1. server {
    2. listen 80;
    3. server_name localhost;
    4. #charset koi8-r;
    5. #access_log /var/log/nginx/host.access.log main;
    6. location / {
    7. root /dist;
    8. index index.html index.htm;
    9. }
    10. #error_page 404 /404.html;
    11. # redirect server error pages to the static page /50x.html
    12. #
    13. error_page 500 502 503 504 /50x.html;
    14. location = /50x.html {
    15. root /usr/share/nginx/html;
    16. }
    17. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    18. #
    19. #location ~ \.php$ {
    20. # proxy_pass http://127.0.0.1;
    21. #}
    22. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    23. #
    24. #location ~ \.php$ {
    25. # root html;
    26. # fastcgi_pass 127.0.0.1:9000;
    27. # fastcgi_index index.php;
    28. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    29. # include fastcgi_params;
    30. #}
    31. # deny access to .htaccess files, if Apache's document root
    32. # concurs with nginx's one
    33. #
    34. #location ~ /\.ht {
    35. # deny all;
    36. #}
    37. }

坑点

tag 为 alpine

只有当 tag 为 alpine 时,用如下命令可以启动:

  1. docker run --rm -it -p 8888:80 nginx:latest

但是当 tag 为 latest 是,会退出且没有日志。

不需要 CMD/ENTRYPOINT

Dockerfile 不需要写 CMD .