参考文章
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
网友评论