如何从头开始在Docker容器中构建新应用程序?

前端之家收集整理的这篇文章主要介绍了如何从头开始在Docker容器中构建新应用程序? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

据说Docker可帮助隔离应用程序环境,并帮助开发人员运行相同的环境.但是所有指南,教程,课程等均从已构建的应用程序开始.那么,如何在NodeJS中从头开始一个新的应用程序呢?

所以最近我开始学习docker,是的,如果我已经在本地主机中安装了所有东西,那么它对于打包已经构建的应用程序很有用.

但是我将如何开始开发新的应用程序?例如在
NodeJS,没有主机安装的NodeJS,因此我无法npm初始化我的文件夹.我将如何安装新软件包,node_modules如何保持持久性以及所有这些?

这是我用于包装和应用程序的一些非常基础的设置….对于我来说,这不是从头开始的工作.

  1. FROM node:10-alpine
  2. WORKDIR /usr/src/app
  3. COPY package*.json ./
  4. RUN npm install
  5. COPY . .
  6. CMD [ "npm","start" ]
  1. version: '3'
  2. services:
  3. example-service:
  4. build: .
  5. volumes:
  6. - .:/usr/src/app
  7. - /usr/src/app/node_modules
  8. ports:
  9. - 3000:3000
  10. - 9229:9229
  11. command: npm start
  1. dev:
  2. docker-compose up

代码中所示,我有一个自定义图像,一个docker-compose和一个makefile.我可以更改其中的任何一个或全部.我想要的是在不使用docker的情况下在主机上未安装任何东西的情况下开发我的应用程序,容器应隔离该应用程序所需的所有内容,最佳做法是在开发过程中保留安装的任何新软件包.

最佳答案
您可以在Cody Craven之前跟随“ How to use Docker for Node.js development”:

它确实使用Docker本身进行开发,而不仅仅是部署/运行NodeJS应用程序.

例:

  1. # This will use the node:8.11.4-alpine image to run `npm init`
  2. # with the current directory mounted into the container.
  3. #
  4. # Follow the prompts to create your package.json
  5. docker run --init --rm -it -v "${PWD}:/src" -w /src node:8.11.4-alpine npm init

然后,您可以使用以下命令设置执行环境:

  1. FROM node:8.11.4-alpine AS dev
  2. WORKDIR /usr/src/app
  3. ENV NODE_ENV development
  4. COPY . .
  5. # You could use `yarn install` if you prefer.
  6. RUN npm install

并构建您的应用程序:

  1. # Replace YOUR-NAMESPACE/YOUR-IMAGE with the name you would like to use.
  2. docker build -t YOUR-NAMESPACE/YOUR-IMAGE:dev --target dev .

并运行它:

  1. # The `YOUR COMMAND` portion can be replaced with whatever command you
  2. # would like to use in your container.
  3. docker run --rm -it --init -v "${PWD}:/usr/src/app" YOUR-NAMESPACE/YOUR-IMAGE:dev YOUR COMMAND

全部没有在工作站上安装节点!

猜你在找的Docker相关文章