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

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

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

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

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

FROM node:10-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install

COPY . .

CMD [ "npm","start" ]
version: '3'

services:
  example-service:
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 3000:3000
      - 9229:9229
    command: npm start
dev:
  docker-compose up

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

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

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

例:

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

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

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

并构建您的应用程序:

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

并运行它:

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

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

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...