Tag: docker

你应该在部署Web应用程序时重新创build容器吗?

我试图找出最佳做法是否会规定,当部署我的Web应用程序的新版本(nodejs运行在自己的容器中)时,我应该: 做一个从容器内的git pull并更新“到位”; 要么 用新的代码创build一个新的容器,并执行两个docker容器的热插拔 我可能会错过一些技术细节,因为我对容器的想法很陌生。

重新启动在Docker内运行的幽灵博客

我正在使用官方Ghost Docker Image ,并且运行ghost时没有问题。 我正在主机上开发一个主题,在主机上作为一个卷装入容器。 与任何正在运行的ghost实例一样,为了查看主题更改,我需要停止并重新启动ghost。 通常这只是意味着结束Node进程并再次运行npm start 。 但是在官方Docker镜像中,这不是一个选项。 如果我尝试运行npm start ,我会被告知: ERROR: (EADDRINUSE) Cannot start Ghost. 这是有道理的,因为港口已经在使用。 我试过手动杀死进程没有成功。 如果我杀死节点进程 kill -9 *node process ID* 容器崩溃了。 我也尝试过杀死npm进程,但是这似乎永远不会下降。 有任何想法吗?

npm安装一个docker-compose项目

我有一个dockerized项目,有三个应用程序和三个数据库。 这三个应用程序是写在节点和像往常一样使用npm 。 我有一个克隆三个docker-compose.yaml的脚本, docker-compose.yaml安装了三个容器,并为这三个项目中的每一个都使用了一个Dockerfile ,基本上只是做一个npm install并运行它们。 这一切工作都很好,但是这个练习的整个目的是使项目集群易于build立和运行以达到发展的目的。 实际上在项目代码上工作并不是问题,因为它被开发人员克隆,但是npm install是通过docker和root来完成的。 这意味着repos中的node_modules属于root。 开发人员不能简单地执行npm install来向repo添加新的软件包,因为他们对node_modules没有权限,并且可能会根据主机系统使用不同的体系结构构build模块。 我曾想过创build一个在容器中运行npm install的脚本,但是这有一些注意事项: root会拥有package.json 这打破了一个典型的节点开发人员的stream程…他们习惯于做npm install 就像我上面所说的那样,整个过程就是尽可能的容易地进入和发展,所以我想尽可能接近一个共同的发展经验。 是否有任何build议来处理Docker容器中的节点模块的开发项目的安装?

nodeJS dockerfile构build失败与NPM

我正在尝试为NODEJS创build一个docker容器并让它运行一个nodejs应用程序。 它在npm安装步骤上失败 The command '/bin/sh -c npm install' returned a non-zero code: 1 这是dockerfile FROM node:onbuild # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN sudo npm install # Bundle app source COPY . /usr/src/app EXPOSE 8080 CMD [ "npm", "start" ] 这是package.json { "private": true, […]

权限问题与Docker和Mac OSX

我正在运行MacOSX 10.11,我最近试图dockerize我所有的项目。 我有一个问题,试图使用docker-compose来运行mongoDB + NodeJS应用程序。 这是我的docker-compose脚本: version: '2' services: mongodata: image: mongo:latest volumes: – "${APP_DB}:/data" command: "–break-mongo" mongo-app: image: mongo:latest volumes_from: – "mongodata" expose: – "27017" ports: – "27017:27017" command: "–smallfiles –dbpath /data" web: build: . volumes: – .:/usr/src/app ports: – "3000:3000" depends_on: – mongo-app links: – mongo-app environment: – PORT=3000 所以基本上我有一个容量只有容器,将坚持我的文件。 然后我根据这个音量运行mongo,然后运行我的NodeJS应用程序。 但每次我尝试运行docker-compose,我有以下错误: mongo-app_1 […]

Chokidar不在Docker容器内部进行文件更改

我正在使用docker for mac版本1.12.0-rc2作为反应项目。 我的工作stream程是: OS X上的src/文件夹被安装到容器中 当开发人员修改src/的文件时,会将其转换为ES5并置于public/ (此工作)。 当public/另一个观察者更改文件触发热重新加载(在我的本地主机,但不在容器中)。 这是我从第3步的步骤观察者代码: // root = "/src" const watcher = chokidar.watch(root, { usePolling: true, awaitWriteFinish: { pollInterval: 100, stabilityThreshold: 250 }, ignored: /\.(git|gz|map)|node_modules|jspm_packages|src/, ignoreInitial: true, persistent: true }) .on("change", function fileWatcher(filename) { const modulePath = filename.replace(`${root}/`, ""); wss.clients.forEach(function sendFileChange(client) { send("filechange", modulePath, client); }); if (cache[filename]) { wss.clients.forEach(function […]

通过Docker上Supervisor的Cron任务查看NodeJS应用程序日志

所以设置是… Docker> Supervisor> Cron> NodeJS任务。 目前我正在让我的主pipe将当前pipe理员设置的日志和错误日志输出到docker。 [program:cron] command=cron -f startsecs=10 priority=100 autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 这显示了正在运行的cron任务,即 app_1 | 'Supervisord is running as root and it is searching ' app_1 | 2016-08-26 12:54:30,519 CRIT Supervisor running as root (no user in config file) app_1 | 2016-08-26 12:54:30,519 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing […]

更新docker容器中的git版本

我在Docker中实现了一个node.js应用程序,需要使用git worktreefunction。 但是,即使我这样做: RUN apt-get update && apt-get install -y git=2.10.0 在2.1.0之后找不到任何其他版本 我正在build立图像: FROM node:4.4.2 我怎样才能得到最新的git版本,它支持docker容器上安装的worktreefunction

如何在Docker容器中安装全局的angular-cli?

我使用下面的dockerfile创build了一个由angular-cli创build的angular2应用程序的图像。 FROM node:latest MAINTAINER BHUSHAN GADEKAR ENV NODE_ENV=production ENV PORT=4200 COPY . /var/www WORKDIR /var/www RUN npm install EXPOSE $PORT ENTRYPOINT ["npm","start"] 成功创build图像后,我尝试使用下面的命令运行此图像 docker run –rm -p 8080:4200 -w "/var/www" bhushan001/angular2-cli npm start 现在我可以看到我的容器开始了,但是运行错误: ng服务“npm”“开始”sh:1:ng:找不到 所以我知道angular-cli不存在于我的容器中,但是我使用npm install在dockerfile中本地npm install了它。 任何投入? 提前致谢。 我怎样才能解决这个问题?

Docker与npm全局安装angular-cli构build时间长

我遇到了一个非常奇怪的情况,想知道是否有人能够说明情况。 简而言之,使用npm install -g angular-cli@1.0.0-beta.16以及其他应用程序步骤需要永久构build。 docker build在自己的图像中单独docker build ,然后docker build FROM第一个图像docker build应用程序的其余部分,一起或单独地花费那么长时间。 当我说了很长时间,我的意思是2小时。 个人需要大约5至7分钟的时间来build设。 所以在我放下所有的代码之前,请注意几点。 我已经在OS X 10.10.5,OS X 10.11.X,OS X 10.12.X,Arch Linux 4.5.1-1-ARCH,Ubuntu 14.04 LTS(在stream浪盒子和AWS中)以及有些朋友在他们的机器上帮助了我。 所有相同的结果。 我正在运行Docker 1.12.1。 我正在修buildFROM alpine:3.4 。 node的版本是v6.2.0和npm 3.8.9(来自高山包)。 我也试过这个图像,我从源码构build了nodejs v5.11.1和npm 3。 FROM alpine:3.4 MAINTAINER First Lastname <user@example.com> ARG ENV #Set environment vars ENV HOME=/home \ APP_DIR=/root/app \ DIST_DIR=/var/www \ […]