Articles of dockerfile

如何将npm包添加到docker图像而不用重新制作图像或容器?

问题:如何安装新软件包并获取docker映像和容器以识别更改,安装和重新运行而不与开发人员进行交互? package.json : 注意我们只有一个包 "scripts": { "start": "node_modules/.bin/nodemon" }, "dependencies": { "express": "4.15.4" } dockerfile FROM node:8.4.0 ENV HOME /var/www WORKDIR ${HOME} COPY server/package.json server/tsconfig.json server/nodemon.json $HOME/ RUN npm install EXPOSE 8191 CMD [ "npm", "start" ] 制作图片 : docker build . -t testImage 运行容器 : docker run -p 8191:8191 -v $(pwd)/server/src:/var/www/src testImage 一切工作正常[nodemon] starting节点[nodemon] […]

Docker:来自守护进程的错误响应:OCI运行时创build失败:container_linux.go:296:

我是一个docker新手,刚开始学习它,我试图用express运行一个简单的节点应用程序,但我得到这个错误: 这是我的工作目录: 我运行以下命令将当前源代码目录挂载到节点容器内的/var/www并运行节点npm start来启动应用程序; 但我得到上面的错误,不知道该怎么办: docker run -p 8085:3000 -v /home/joel/workspace/plural_docker_webdev:/var/www node -w "/var/www" node npm start 我得到这个错误: docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"-w\": executable file not found in $PATH": unknown. ERRO[0000] error waiting for container: context canceled

Docker组成新的图像和实例

我正在运行docker机器服务器,我运行docker实例。 我想从不同文件夹中的同一个docker-compose文件运行多个服务器(实例)。 我configuration了两个Dockerfile。 一个是mysql,另一个是nodejs。 这是一个例子: FROM node:alpine RUN npm install -g nodemon RUN npm install -g pm2 ADD package.json package.json RUN npm install EXPOSE 3000 现在我运行docker-compose这样的东西: version: '2' services: service: build: context: . dockerfile: Dockerfile-server container_name: server ports: – "2000:3000" restart: always working_dir: /home/app volumes: – ./:/home/app command: sh -c 'nodemon' db: build: context: . […]

NodeJS Express Docker实例退出,代码为0

目标 我在我的dockercompose.yml有3个实例,我只能启动2个实例,并且难以启动我的节点expression的第三个实例。 项目目录 . ├── Icon\r ├── angular │ ├── Dockerfile │ ├── README.md │ ├── dist │ │ ├── css │ │ │ └── style.css │ │ ├── img │ │ │ ├── external.png │ │ │ ├── favicon.png │ │ │ ├── footer_logo.png │ │ │ └── logo.png │ │ ├── index.html │ […]

使用Yarn依赖关系为Node应用程序构buildDocker镜像

我正在尝试为使用yarn安装依赖关系的节点应用程序构builddocker镜像。 我的Dockerfile看起来像这样: FROM node:7 WORKDIR /app COPY package.json /app RUN yarn install COPY . /app CMD npm run develop EXPOSE 8000 当我在我的本地机器上运行纱线安装时,每件事情都运行良好,但是当我执行docker build时,我得到了这个永远阻塞的错误。 **docker build -t rs .** Sending build context to Docker daemon 219.1MB Step 1/7 : FROM node:7 —> d9aed20b68a4 Step 2/7 : WORKDIR /reason —> Using cache —> fe51a1860989 Step 3/7 : […]

Dockerfile问题:无法将文件夹从源(主机)复制到目标(容器)文件夹

作为一个解决scheme,不能通过npm链接正确处理本地依赖关系,我试图让Dockerfile将symlinked文件夹复制到node_modules文件夹中,如下所示: FROM node:latest ADD package.json /tmp/package.json RUN cd /tmp && npm install RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app && cp -a /tmp/package-lock.json /usr/src/app && cp -a /tmp/package.json /usr/src/app COPY node_modules/modlib1 /usr/src/app/node_modules/mongodb-repository COPY node_modules/modlib2 /usr/src/app/node_modules/redis-repository 每次Dockerfile执行到复制行,我收到以下错误: 错误:服务“container1”未能build立:COPY失败:stat /var/lib/docker/tmp/docker-builder831774561/.npm-global/lib/node_modules/modlib1:没有这样的文件或目录 这里是我的docker-compose.yml这个服务部分的示例: container_name: "modlib" build: context: . dockerfile: Dockerfile volumes: – .:/usr/src/app/ – /usr/src/app/node_modules ports: – […]

将docker-compose文件转换为构build和运行命令

我想通过使用docker构build和docker运行命令而不是通过撰写文件来启动我的docker容器。 我开始将撰写文件转换为命令,但我卡住了。 撰写文件: version: '2' services: node: build: ./node_js command: node server.js depends_on: – mongo links: – mongo environment: NODE_ENV: development ports: – '8080:8080' volumes: – ./node_js:/home/app/chat – /home/app/chat/node_modules mongo: build: ./mongo ports: – "27017:27017" 这是我到目前为止所提出的 构build命令(这个工程,当我运行它): docker build –tag testenvironment/node_js ./node_js 运行命令: docker run -p 8080:8080 –link mongoDB:testenvironment/mongo –name nodejs -d testenvironment/mongo node server.js […]

使用本地npm依赖性设置docker nodejs应用程序

我们希望开始容纳我们的应用程序,但是我们偶然发现了一些本地依赖的问题。 我们有一个git仓库,在这个仓库中有许多节点包,在“共享”文件夹下,以及需要这些包的应用程序。 假设我们的文件夹结构如下所示: src/ ├── apps │ └── my_app └── shared └── shared_module 在my_app package.json中,我们有以下依赖关系: { "dependencies": { "shared-module": "file:../../shared/shared_module" } } 这里的问题是,因为我们想要移动“my_app”在容器中运行,我们需要npm安装我们的本地依赖。 可以这样做吗?

无法通过Docker中的node.js连接到MongoDB

我的node.js express应用程序无法连接到Docker中的MongoDB。 我不熟悉Docker。 node.js连接: import mongodb from 'mongodb'; … mongodb.MongoClient.connect('mongodb://localhost:27017', … ); Dockerfile: FROM node:argon RUN mkdir /app WORKDIR /app COPY package.json /app RUN npm install COPY . /app EXPOSE 3000 CMD ["npm", "start"] 泊坞窗,compose.yml version: “2” services: web: build: . volumes: — ./:/app ports: — “3000:3000” links: — mongo mongo: image: mongo ports: — […]

Docker端口转发为nodejs应用程序

我在为我的nodejs应用程序configurationdocker时遇到问题。 我以前已经为php和rails设置了容器,端口转发工作正常,但是对于这个例子,我似乎无法得到它的工作。 运行: docker ps ,我得到以下内容: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a60f9c82d600 29c7d94a8c58 "/bin/sh -c 'npm s…" 5 seconds ago Up 3 seconds 3000/tcp romantic_albattani 正如你可以看到我没有得到通常的:我期望的0.0.0.0:3000->3000/tcp 。 docker-compose ps给出: Name Command State Ports —————————— 我的docker-compose.yml: web: build: . volumes: – .:/app volumes_from: – box ports: – "3000:3000" box: image: busybox volumes: – […]