docker打包node项目的过程讲解

身为一个后端程序员,有时不得已也要摆弄一下前端的东西。这不,老大让我把前端项目打个docker 包。好了,废话不多说。打docker 包首先得有dockerfile 那就先编写docker吧

Dockerfile

FROM daocloud.io/node:7
MAINTAINER abel.yang <527515025@qq.com>
LABEL Descripttion="This image is build for web"
RUN mkdir -p /opt/apps/epp
COPY . /opt/apps/epp
WORKDIR /opt/apps/epp/epp-web/server
ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
EXPOSE 3001
CMD [ "npm", "start" ]

好了 dockerfile 编写好了执行 打镜像命令。

myeppweb 为我打成镜像的名字

docker build -t myeppweb .
// 注意 . 不能忘。

启动

此时执行 docker images 就可以查看到打包成功的镜像

执行启动命令:

docker run -d -p 3001:3001 myeppweb

分析

好了讲解一下dockerfile 的命令

基于daocloud.io/node:7 的镜像进行打包镜像

FROM daocloud.io/node:7

这个是维护者的信息

MAINTAINER abel.yang <527515025@qq.com>
LABEL Descripttion="This image is build for web"

创建一个 文件夹并将当前文件夹下的 所有文件放到 新建的文件夹下。(我当前的文件夹下的文件是 前端可运行的代码。直接输入npm run start 就能运行的代码哦)

RUN mkdir -p /opt/apps/epp
COPY . /opt/apps/epp

设置当前路径,也就是下面所有命令的执行都是在这个路径

WORKDIR /opt/apps/epp/epp-web/server

设置镜像时间和时区

ENV LANG C.UTF-8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

暴露端口

EXPOSE 3001

启动node

CMD [ "npm", "start" ]

好了这篇文章也就是记录一下打包的过程。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 使用Docker部署Nginx+Flask+Mongo的应用

    Nginx做为服务器,Mongo为数据库支持,Flask为Python语言的Web框架,利用Docker的容器特性,可以简单地部署在linux服务器上 项目准备 项目主要目录如下 __ project-name |__ docker-file |__ ningx |__ Dockerfile |__ conf |__ nginx.conf |__ flask |__ Dockerfile |__ requirements.txt |__ mongo |__ Dockerfile |__ setu

  • Dockerfile指令与基本结构的讲解

    使用 Dockerfile 可以允许用户创建自定义的镜像. 基本结构 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. 一般的,Dockerfile 分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令. 例如: // 基础镜像信息 FROM daocloud.io/node:7 // 维护者信息 MAINTAINER abel.yang <527515025@qq.com> LABEL Descripttion="This image i

  • Docker 容器日志分析

    查看容器日志 先使用  docker run -it --rm -d -p 80:80 nginx:1.15.8-alpine 命令启动一个nginx容器.如果没有异常,会得到容器ID如  d2408a7931c95a3a83ffeca2fba887763cf925a67890ef3be4d9ff838aa25b00  的长串.再使用  curl -i http://127.0.0.1  访问服务,确认nginx容器正常启动运行.最后使用  docker logs -f d24  查看容器的日志

  • docker搭建php+nginx+swoole+mysql+redis环境的方法

    操作系统:阿里云esc实例centos7.4 软件:docker-ce version 18.09.3, docker-compose version 1.23.2 一.创建带有swoole-redis-pdo_mysql-gd扩展的docker image 1.创建dockerfile文件 vim dockerfile 2.在dockerfile文件写入 From php:7.1-fpm RUN apt-get update && apt-get install -y \ libfree

  • 使用dockercompose搭建springboot-mysql-nginx应用

    上篇使用docker构建spring-boot应用,是把编译好的jar包构建到镜像中. 这篇是把spring-boot连同数据库,做为一组docker服务运行起来. 这里只是把自己操作记录下来,完整运行的代码见"参考"中的引用1中的内容. (我修改mysql映射目录及获取远程ip的方法) 主要步骤: 搭建简单的springboot应用 应用添加docker下支持 编写dockercompose配置文件 实践运行 搭建简单的springboot应用 做一个web应用,统计访问该站点的ip

  • 使用Docker部署MySQL 5.7&8.0主从集群的方法步骤

    > 部署 MySQL 5.7 集群 master & slave (仅测试用) 镜像版本 5.7 1.创建 overlay 网络 docker network create --driver overlay common-network --attachable 2.编辑两个配置文件 master.cnf 与 slave.cnf !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ [mysqld] log-b

  • 使用Docker部署Spring Boot的方法示例

    这里主要用到spring-boot开箱即用,能生成一个独立运行的程序,及maven的插件docker-maven-plugin 这里主要步骤 构建一个简单的springboot项目 添加docker-maven-plugin及写dockerfile 实践生成 docker镜像 一个简单 Spring Boot 项目 以spring boot 2.0 为例 在pom.xml文件中增加parament依赖 <parent> <groupId>org.springframework.bo

  • docker中的环境变量使用与常见问题解决方案

    前言 docker可以为容器配置环境变量.配置的途径有两种: 在制作镜像时,通过ENV命令为镜像增加环境变量.在容器启动时使用该环境变量. 在容器启动时候,通过参数配置环境变量,如果与镜像中有重复的环境变量,会覆盖镜像的环境变量. 使用docker exec {containerID} env即可查看容器中生效的环境变量. [root@localhost ~]# docker exec 984 env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/

  • 详细记一次Docker部署服务的爬坑历程

    第一次写文.请允许我自我介绍一下... 大家好我是茉莉.为什么叫茉莉呢?emmm ID茉莉转圈圈? 皮一下,嘻嘻嘻.笔者两年小菜鸡(差三天满两年).因为公司只有一个我和前端两个人.所以线上服务部署的任务自然而然就落到了我的肩膀上啦.第一次用docker正式在生产环境部署服务.从一个坑爬出来又掉入另一个坑.就记录一下这次上线遇到的bug.写的不对的地方麻烦各位指正噢.见谅! 好啦.废话不多说.action! 本项目采用的是spring cloud+spring boot+spring gatewa

  • 使用docker快速部署Elasticsearch集群的方法

    本文将使用Docker容器(使用docker-compose编排)快速部署Elasticsearch 集群,可用于开发环境(单机多实例)或生产环境部署. 注意,6.x版本已经不能通过 -Epath.config 参数去指定配置文件的加载位置,文档说明: For the archive distributions, the config directory location defaults to $ES_HOME/config. The location of the >config direc

随机推荐