Tag: docker

生产与开发Docker设置Node(Express&Mongo)应用程序

我试图将Node应用程序转换为使用Docker,但遇到了一些我无法回答的问题/问题。 但为了简单,我已经包含了一些非常基本的示例文件,以便将问题保持在目标之上 实际上下面的例子只是链接到一个Mongo容器,但并没有在代码中使用它来保持它更简单。 首先, Dockerfile和Dockerfile docker-compose.yml设置是否需要在本地(OS X)开发和生产版本上成功使用Node + Express + Mongo应用程序上的Docker? Dockerfile FROM node:6.3.0 # Create new user to avoid using root – is this correct practise? RUN useradd –user-group –create-home –shell /bin/false app COPY package.json /home/app/code/ RUN chown -R app:app /home/app/* USER app WORKDIR /home/app/code # Should this even be set here or use […]

如何configurationspring拦截器来调用每个请求

我想configuration我的弹簧拦截器,以便每个请求应该被调用。 我在API-GATEWAY (Spring-Boot)中使用拦截器, 从API-GATEWAY我打电话给其他微服务。 来自API-GATEWAY的其他微服务的调用工作正常。 我打电话的其他服务是Node.js服务,另一方面,我的API网关是在春季启动。 所有服务(Node.js + Spring-Boot)都在Docker Container上运行。 我在Interceptor中面临一个问题。 我想以这样的方式来configuration它,每个请求都应该被称为preHandle()并执行我写在其中的操作。 我注意到一个我想在这里提到的问题。 如果我正在调用的服务被停止(不运行),拦截器工作正常,给我一个没有findsomename-service的响应。 如果相同的服务正在运行,则拦截器不会执行。 这是我的代码片段 @EnableEurekaClient @SpringBootApplication @EnableZuulProxy @Configuration public class Application extends WebMvcConfigurerAdapter { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Autowired private TokenValidateInterceptor tokenValidateInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(tokenValidateInterceptor).addPathPatterns("/**"); } 拦截器 @Component public class TokenValidateInterceptor extends HandlerInterceptorAdapter { […]

Node.js集群vs多个Docker容器

据我所知,Docker容器使用多个线程,Node.js应用程序只使用一个线程。 通过运行类似于处理Node.js集群的pm2 ,我可以利用Docker容器可用的所有内核。 这是否意味着我可以通过对Node.js进程进行集群来更好地利用每个Docker实例? 如果是这样,这是不是比每个容器简单运行一个单线程的Node.js实例更受欢迎? 一个担心的是,如果这有可能造成Docker容器扩大或缩小其运行的CPU数量的副作用。

泊坞窗。 npm install – >错误:getaddrinfo ENOTFOUND

为什么我无法在Docker中收到包node.js。 我收到以下消息: Step 10 : RUN npm install —> Running in 20f3e58dea20 npm info it worked if it ends with ok npm info using npm@2.14.7 npm info using node@v4.2.3 npm http request GET https://registry.npmjs.org/amqp npm info attempt registry request try #2 at 3:40:26 PM npm http request GET https://registry.npmjs.org/mongodb npm info retry will retry, error […]

NPM在CentOS上安装运行Docker的错误

我按照这个教程来dockerize一个node.js应用程序,它总是在Dockerfile的'npm install'部分失败。 这里是教程的链接: http : //docs.docker.com/examples/nodejs_web_app/ 我得到的错误如下所示: npm ERR! install Couldn't read dependencies npm ERR! Error: ENOENT, open '/src/package.json' npm ERR! If you need help, you may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> npm ERR! System Linux 3.13.0-43-generic npm ERR! command "node" "/usr/bin/npm" "install" npm […]

学习NodeJS和MongoDB Docker组成

我有一个使用MongoDB的NodeJS项目。 我想在一个Docker容器中运行这个服务,但是尽pipe有很多例子是基于我的学习的,但这是行不通的。 这是我的/ heimdall_jwt / Dockerfile : FROM node:9-alpine WORKDIR /usr/src/app COPY package.json /usr/src/app RUN npm install RUN npm install pm2 -g COPY . /usr/src/app EXPOSE 3000 CMD ["pm2-docker", "start", "process.json"] 这里是我的/heimdall_jwt/docker-compose.yml version: '2' # Define the services/containers to be run services: myapp: #name of your service build: ./ # specify the directory of the […]

如何访问在Mesos上运行的Web应用程序?

我对Mesos很新,而且我仍然试图围绕它的概念和想法。 到目前为止,我想我已经明白了,基本上,Mesos试图抽象出你的数据中心,并将其作为一台大型计算机呈现。 使用Mesos + Docker集成 ,基本上可以在Mesos上运行任何应用程序,只要你的应用程序可以从Docker容器中运行即可。 这使我期望我可以使用Mesos来运行Node.js应用程序。 这不应该太难设置。 我得知,我需要创build一个新的应用程序,设置它的实例&co。,然后去做。 然后,Mesos部署我的应用程序,并负责将其分发到数据中心。 当向Mesos请求端点时,我可以找出创build的IP地址/主机名和端口。 但是,当然,我希望Web应用程序可以在特定的域或子域中使用,理想的情况是使用端口80或443,也使用负载均衡和高可用性。 Mesos中有什么可以使用的吗?

图:找不到模块 – docker运行工作

我试图用一个最小的节点应用程序运行。 (编辑:从fig.yml中删除卷) fig.yml: example: build: . command: node server.js ports: – "4000:4000" links: – postgres postgres: image: postgres Dockerfile: FROM node ADD . /src WORKDIR /src RUN npm install server.coffee: express = require 'express' app = express() app.get "/", (req, res) -> res.send "Hello World" server = app.listen 4000, () -> console.log 'Listening on port […]

使用Visual Studio代码远程debuggingDocker中的NodeJS

我想为我的应用程序使用官方node泊坞窗图像。 但是我不能让远程debugging器在主机上工作。 我正在使用Visual Studio代码连接到远程debugging器。 奇怪的是使用非官方的图像cusspvz/node远程debugging工作正常。 当我运行docker log对容器的cusspvz/node实例时,我得到以下输出: Debugger listening on [::]:5858 但是,当我运行docker log对容器的node实例我得到: Debugger listening on 127.0.0.1:5858 这导致我相信debugging器正在监听错误的IP地址(应该是通配符而不是本地主机?) 我已经尝试了内置debugging器以及nodemon。 不幸的是,我无法让节点检查器工作,因为它无法安装(看来,构build失败了)。 这是我的Dockerfile: FROM node WORKDIR /scraper EXPOSE 5858 ENTRYPOINT ["/bin/bash", "-c", "if [ -z \"$REMOTE_DEBUGGING\" ]; then node –debug index.js; else node –debug-brk index.js; fi"] COPY . /scraper RUN npm install 我用docker-compose启动容器,使用这个YML文件: version: '2' services: alt.nphotos.imagescraper: […]

在Minikube和docker上开发工作stream程

我正试图了解如何有效地开发dockerized应用程序,特别是Kubernetes。 我正在努力寻找正确的方式去实时编辑容器。 在过去的Docker中,我只是使用类似于Nodemon的东西来监视文件在本地更改,然后当我完成应用程序时,我将dockerize并部署。 对于Kubernetes(minikube),我的第一印象是我应该在每次编辑时重build容器。 当然,这不可能是人们在这里发展的方式 – 我错过了什么? 我应该在本地进行编辑,然后dockerize-> k8s部署? 那看起来不错。 我正在寻找一种方法,将所有本地更改同步到一个docker容器,然后重新启动kubernetes pod以进行新的更改,以便在开发期间从日志中读取数据。 如果这很奇怪,请推荐我一个更好的方法。 谢谢