Articles of docker

Docker容器中的NodeJS webpack构build

我阅读了关于长期caching的内容,并试图在我的项目中实现这一点,但是当我试图在Docker容器中构build它时,清单文件会生成错误的资源链接,但是生成过程却很顺利。 Dockerfile.web FROM node:8.2.1-alpine WORKDIR /web ADD /tmp/app.tar.gz /web # At the end node_modules will be removed because of bug with npm prune. # In this case we need re-install production-only deps to reduce container weight. RUN yarn install && \ yarn run build-production && \ rm -rf node_modules && \ yarn install –production && […]

docker-node:作为非root用户运行,文件权限

遵循docker-node的最佳实践 ,我想以非root用户的身份运行我的节点应用程序。 build议如下: FROM node:6.10.3 … # At the end, set the user to use when running this image USER node 我简化的Dockerfile目前看起来像这样: FROM node:6.10.3 WORKDIR /opt/app COPY package.json . RUN npm install COPY . . EXPOSE 3000 USER node CMD ["node", "server.js"] 因此,在映像构build期间添加的所有文件都由root拥有,但node server.js node作为node用户运行。 这似乎工作正常。 我的问题:是否有任何额外的安全好处chown文件,以便他们属于node而不是root ? 即做类似的事情: RUN chown -R node:node .

如何dockerize我的nodejs快递应用程序托pipe在亚马逊linux ami?

1.my上面的应用程序技术栈是expressjs,nodejs,mongoDB,redisDB,s3(存储)。 2.API托pipe在Linux AMI上3.我需要为我的应用程序创builddocker容器镜像。

如何将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 / alpine:如何在高山形象下安装nodeJS 4.8.4

我使用的是alpine (最低3.5),我需要使用nodeJS 4.8.4 Dockerfile FROM alpine:3.5 RUN apk add –update nodejs=4.8.4 ffmpeg graphicsmagick 但是这给了我错误 ERROR: unsatisfiable constraints: nodejs-6.9.5-r1: breaks: world[nodejs=4.8.4] The command '/bin/sh -c apk add –update nodejs=4.8.4 ffmpeg graphicsmagick' returned a non-zero code: 1 如何使用alpine在4.8.4版本中安装nodeJS?

与Socket.io和Docker无法获得超过980个连接

我无法扩展我的简单的Socket.IO应用程序过去使用Docker的980个并发连接。 但是,如果我在macOS Sierra 10.12.6本地运行它,我可以获得超过3000个连接。 我已经包含了我正在testing的一个简单的SocketIO应用程序的回购: https : //github.com/gsccheng/simple-socketIO-app 我的Docker-for-Macconfiguration为4个CPU和5GB内存。 版本是 Version 17.09.0-ce-mac35 (19611) Channel: stable a98b7c1b7c 我正在使用炮兵版本1.6.0-9加载testing $ artillery run load-test.yaml 我正在显示一些设置的冗余configuration(以显示它们已被考虑)。 这是我的重现步骤。 $ docker build . -t socket-test $ docker run -p 8000:8000 -c 1024 -m 4096M –privileged –ulimit nofile=9000:9000 -it test-socket:latest /bin/sh #> DEBUG=* npm start 高达约980个连接,我会得到像这样的日志: Connected to Socket! socket.io:client writing packet […]

阻塞调用如何像Jetty Non Blocking IO servlet在内部处理数据库访问?

我已经阅读了大量的材料来尝试和清楚地了解Jetty Non Blocking Web应用程序服务器可以或不可以提供的收益。 到目前为止,我所了解的(部分是通过引用这个: Jetty和其他容器如何在坚持Servlet规范的同时利用NIO )是因为使用非阻塞IO模型,像Jetty这样的Web服务器运行一个(或每个CPU核心)线程 – select器线程 – 确定为一些I / O准备好的连接。 准备好一些I / O的连接将被分派到内部线程池进行处理,以处理请求。 我可以看到,这样的架构可以让您以更less的资源为更多的连接提供服务。 不过,我不清楚的是这样的: 如果我使用执行阻塞I / O的标准JDBC驱动程序编写了运行长时间运行的数据库操作的servlet,那么处理程序线程是否不会从池中分派来处理此请求块? 如果请求的速度超过了数据库请求的执行速度,那么处理程序线程池会耗尽一些时间? 所以对于像这样的应用程序,是否有任何好处在一个非阻塞docker的networking服务器上运行? 如果servlet本身对数据库使用了另一层非阻塞访问权限,那么是否真正产生了非阻塞性的好处呢? 还是有什么我失踪? 请说明是否有一些魔术通过它将阻止数据库操作比阻塞的Web服务器支付更less的代价。 PS:为了对比,我在这里阅读了关于Node.js的内容 – 单线程非阻塞IO模型如何在Node.js中工作 – 似乎表明Node在下面使用libuv并应用其他技术来翻译代码中的所有阻塞操作(例如数据库访问和sleep() )到事件callback,确保事件循环和内部线程池永远不会阻塞阻塞callback。 尽pipe对我来说还是有点狼狈的,但是假设Node对了,Jetty可以承诺吗? 对于不是以非阻塞方式写入的servlet,也是如此?

从docker开始npm开始?

您好我正在与npm运行一个基本的反应项目,我试图启动它在docker集装箱。 但是我实际上无法让项目运行。 我的dockerfile看起来像这样: FROM node:7.8.0 WORKDIR / ADD . / EXPOSE 80 RUN npm install ENTRYPOINT npm run start 我收到相关的消息说,现在可以查看项目,但在浏览器中什么也没有显示。 任何帮助,将不胜感激。

.dockerignore排除某些子文件夹

我有一个node_modules文件夹,其中包含/node_modules/@mymodules/schema和/node_modules/@mymodules/ui下的两个私有包。 正如预期的那样,一旦运行npm install尝试安装这些软件包,就会在我的Dockerfile中失败。 我想从.dockerignore中排除这些文件夹,但我不知道为什么以下不起作用: node_modules/**/* !node_modules/@mymodules/**/* 如果我exec bash进入容器和ls它表明! 排除没有做任何事情。 如何排除node_modules,但包含这些模块?

Jenkins里面的Docker代理 – npm“找不到模块”

我正在从事以下构build步骤的自动化: – 使用webpack构build前端应用程序 – 在其上运行testing 我正在使用启用蓝海插件的Jenkins,这里是Jenkinsfile : Jenkinsfile:pipeline { agent { dockerfile { filename 'Dockerfile' } } stages { stage('Build') { steps { sh 'npm run build' } } } } 我正在使用下面的Dockerfile FROM node:latest WORKDIR /app COPY . /app RUN npm install webpack -g && npm install 问题是,当运行npm run build它不能findwebpack: > webpack –config webpack-production.config.js –progress […]