Articles of 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 \ […]

如何构build您自己的MeanJS Docker镜像?

我是Docker的新手,我得到了一个任务来创build一个运行我们的平均堆栈应用程序之一的自定义容器。 我使用https://hub.docker.com/_/php/在AWS上创build了自己的简单PHP容器,它可以访问它,但是我只是想知道如何使用Mean栈来实现。 我们在这里的应用程序使用http-server在本地运行 我在网上查看了多个博客/教程,例如: https://nodejs.org/en/docs/guides/nodejs-docker-webapp/ https://blog.giantswarm.io/getting-started-with-docker-and-meanjs/ 但我仍然感到迷失。 有什么build议么?

如何在Docker中执行非全局的npm二进制文件

假设我有下面的Dockerfile WORKDIR $APP_DIR ENTRYPOINT ["npm", "run"] CMD ["start"] start被映射到babel-node bin/server ,其中babel-node是一个nodejs非全局依赖二进制文件(默认安装在$ APP_DIR / node_modules内) 在我的Mac上,没有任何设置,这工作正常。 但是当我在Docker中运行它时,它显示命令没有find,这并不奇怪。 所以相同的命令npm run start在我的主机上工作,但在Docker中。 sh: 1: babel-node: not found error Command failed with exit code 127.

bcrypt和Docker bcrypt_lib.node:无效的ELF头

我在Node.js上看到了一些关于macOS,Docker和bcrypt问题。 这似乎是我的问题最接近的答案,但它没有奏效。 我的Dockerfile : FROM node:6.4.0 COPY . /app RUN ls -la /app WORKDIR /app RUN cd /app; npm install CMD ["node", "index.js"] 我的.dockerignore文件: node_modules 我的package.json依赖关系: "dependencies": { "bcrypt": "1.0.0", } 当启动容器时,我得到这个错误: /app/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header 从Dockerfile的ls -la /app命令中,我可以看到node_modules文件夹肯定不是从主机(macOS)复制的: drwxr-xr-x 6 root root 4096 Dec 7 21:29 . drwxr-xr-x 47 root root 4096 Dec 7 […]