镜像制作

参考文章

1. Docker部署 nodejs项目
2. Docker部署 nodejs项目
以上两个文章都可以成功的进行部署。但是在实际的项目中需要进行多文件的复制copy文件,文件会进行多个层级目录copy。

制作简单步骤
1. 在项目根目录下创建 `Dockerfile` 和`.dockerignore`文件
2. 执行命令: docker build -t docker_demo1 .   #主要后面的 . m demo1 是镜像的名字
3. 检查镜像 docker images 
4. 运行 docker run -d -p 8880:3333 yourimageName
8880: 本机端口, 3333:容器配置端口

自测是遇到的问题
工作路径配置配置和copy文件先后的问题

Dockerfile文件中配置如下内容:

FROM node
RUN mkdir -p user/home/service 
COPY . user/home/service
WORKDIR user/home/service
# COPY ./bin user/home/service/bin
# COPY ./package-lock.json user/home/service
# COPY ./package.json user/home/service
# COPY ./public user/home/service/public
# COPY ./routes user/home/service/routes
# COPY ./views user/home/service/views

RUN npm install

#配置环境变量
 ENV HOST 0.0.0.0
 ENV PORT 3333
#定义程序默认端口
EXPOSE 3333
CMD npm start

在实际测试时发现,WORKDIR 需要在 COPY命令之前,否则文件路径就会出现错误(这里有些不符合逻辑,但确实遇到了)。也就是WORKDIR 隐含着CD的作用。两者交换执行顺序程序无法正常运行。

忽略文件的配置

一般代码都会在本地进行测试,在项目代码路径下无法避免总会有镜像文件不需要的文件,因此需要配置.dockerignore文件

#需要忽略的文件
node_modules

你可能感兴趣的:(镜像制作)