title: nginx-docker author: Gamehu tags: - nginx categories: - docker date: 2020-11-21 11:12:00 --- ### 背景 由于事业部专门成立团队做部署平台,由于各种因素迟迟没有上线,以前的Jenkins也不能用了,但是前后端需要有环境进行联调,后端还好说每个模块本地起个服务就行,前端就尴尬了本地起服务限制太多,所以需要想办法搞个环境,遂想着悄悄咪咪(深藏功与名...)搞了个环境让大家能先跑起来不至于耽误工期。 满足以下要求: 1. 前端更新简单 2. 无脑一条命令搞定start\stop\restart 3. 于生成环境尽量贴合 ### 实操 因为生成环境是基于docker做部署,所以先弄个nginx的镜像。nginx的镜像茫茫多,不过大体都很全面,我觉得太重,所以就弄了个最简单的。 #### docker-compose.yml ```yml version: '3.1' web: my-nginx: container_name: new-monitor-nginx image: nginx restart: always logging: driver: "journald" volumes: - /home/xxx/mount/nginx.conf:/etc/nginx/nginx.conf - /home/xxx/mount/html:/etc/nginx/html ports: - "443:443" network_mode: "bridge" environment: - TZ=Asia/Shanghai ulimits: core: 0 ``` #### Dockerfile ```shell # 用官方的nginx镜像 FROM nginx # ENTRYPOINT 类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,用于传参。 # eg:docker run nginx:one -c /etc/nginx/new.conf,容器内会运行nginx -c /etc/nginx/new.conf ENTRYPOINT ["nginx", "-c"] #COPY 复制,从上下文目录中复制文件或者目录到容器里指定路径。 COPY nginx.conf /etc/nginx/nginx.conf COPY html /etc/nginx/html # RUN,在 docker build时作用 RUN rm /etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf # EXPOSE 声明端口,镜像服务的守护端口,以方便配置映射。 EXPOSE 8088 # VOLUME 用于挂载数据卷 VOLUME /var/log/nginx/log #CMD 类似于 RUN 指令,在docker run 时运行。 CMD ["nginx", "-g", "daemon off;"] ``` #### 构建、启动容器 ```shell docker build -t xxx docker-compose down sleep 10 docker-compose up -d ``` 后续直接 ``` docker restart 容器名 ``` ### 后续 其实最终我又把docker干掉了....因为有同事悄悄咪咪手动装了nginx,优化了一下把nginx挂到了系统服务上,同样的也是直接systemctl xxx就行了。 反正结果是好的,结合alibaba toolkit也是玩的飞快了。 干研发的不就得折腾吗,对吧。