Tag: docker

用于SPA应用程序的.NET核心Docker镜像

当创build一个新的ASP.NET Core MVC应用程序,特别是使用React / Redux(或其他需要Node.js)模板时,什么是正确的Docker镜像? 如果不是特定的图像,那么在Dockerfile中为ASP.NET Core MVC支持的Node.js应用应该遵循哪些命令或进程? 除了运行后备MVC站点之外,我不需要SDK的框架版本。 dotnet new reactredux 运行时映像没有安装Node.js,并且在尝试运行容器时会出错。 Dockerfile: FROM microsoft/aspnetcore:latest ARG source=./bin/Debug/netcoreapp2.0/publish/ WORKDIR /app COPY $source . EXPOSE 80 ENTRYPOINT ["dotnet", "Project.dll"] 错误: Unhandled Exception: System.AggregateException: One or more errors occurred. (Failed to start Node process. To resolve this:. [1] Ensure that Node.js is installed and can be found […]

有没有一种简单的方法在Bitbucket Pipelines Docker容器中更改为非root用户?

Bitbucketpipe道使用Docker容器来执行任务,默认情况下,Docker容器以root身份运行。 这是NPM生命周期脚本的一个问题,因为NPM在运行脚本时试图降级它的权限。 当执行postinstall脚本时, NPM会抛出一个错误 ,它cannot run in wd %s %s (wd=%s) 。 最简单的解决scheme是使用–unsafe-perm标志运行npm install,但我不喜欢这种方法。 Docker写Dockerfiles的最佳实践指出: 如果一项服务可以运行没有权限,使用USER来更改为非root用户。 当configuration一个典型的Docker容器时,我将创build一个新的非root用户,并以该用户身份运行我的npm脚本。 在阅读Pipelines文档后,我找不到Docker的USER命令的任何等价物。 我可能能够使用useradd , chown和su (还没有testing过),但有一个更简单的解决scheme吗? 不幸的是,添加useradd , chown和su到bitbucket-pipelines.yml脚本部分中断pipe道并导致失败的repo:push webhook。 image: node:6.2 pipelines: default: – step: script: – useradd –user-group –create-home –shell /bin/false node – chown -R node: /opt/atlassian/bitbucketci/agent/build – su -s /bin/sh -c "npm install" node – su […]

docker工人 – 没有这样的文件或目录

我在运行docker文件时收到docker的错误。 这是说/ var / lib / docker / aufs / layers / xxxx:当我运行Docker构build时没有这样的文件或目录。 我已经尝试了很多方法来删除容器和图像,所以我在这一个非常多的股票。 任何 Docker文件是: FROM node:6 RUN git clone https://github.com/preboot/angular2-webpack.git WORKDIR angular2-webpack RUN sed -i.bak 's/–port 8080/–host 0.0.0.0 –port 8080/' package.json RUN npm i CMD [ "npm", "run", "start" ] 完整的控制台输出是: Sending build context to Docker daemon 9.728 kB Step 1 : FROM […]

npm package.json和docker(安装它…)

我正在使用Docker,所以这种情况可能看起来很奇怪。 但是我希望我的整个/data目录被安装在我的docker容器里面。 我的/data文件夹容器我的package.json文件,一个app目录和一堆其他的东西。 问题是,我希望我的node_modules文件夹不是持久的,只有package.json文件。 我已经尝试了一些东西,但package.json和npm在这里给我一个很难的时间… 直接挂载package.json文件会破坏npm。 npm尝试在保存时重命名文件,这是挂载文件时不可能的。 挂载父文件夹( /data )将挂载node_modules文件夹。 我找不到任何configuration选项将node_modules放置在/data ,example /dist之外的另一个文件夹中 把package.json放在/data/conf将/data/conf挂载为一个卷,而不会工作。 我不能find任何方式来指定npmrc的package.jsonpath。 将package.json放在/data/conf并将其/data/package.json到/data/package.json无法正常工作。 npm打破了符号链接,并用文件replace它。 从Docker容器中来回复制数据是我现在正在做的事情..有点乏味..我也想要一个干净的解决scheme..

从主机连接到蒙戈docker集装箱

我在OS X上运行Docker: docker run –name mongo -p 27017:27017 -v ./data/db:/data/db -d mongo mongod 并使用IP我得到: docker inspect –format '{{ .NetworkSettings.IPAddress }}' <cid> 在: var MongoClient = require('mongodb').MongoClient; var assert = require('assert'); var url = 'mongodb://<ip>:27017'; MongoClient.connect(url, function(err, db) { assert.equal(null, err); db.close(); }); 我得到一个超时错误。 我正在使用Docker Hub官方的mongo仓库。 是否有任何额外的设置,我需要做的从主机连接?

nodejs v0.12和v5.x版本之间的区别

我正在寻找通过Dockerfile安装nodejs到一个基于debian的容器。 我对这里的不同分配有点困惑。 我得出结论,我想要最新的稳定分布。 现在,在nodesource / distributions#deb中有四种不同的发行版(v0.10,v0.12,v4.x,v5.x)。 据我所知,我需要v5.x(通过阅读这个博客文章 ,其他随机我googlesearch)。 但是在我所寻找的地方,人们推荐安装v0.12(这也是最新的stable,或者说LTS,我不确定),即使在nodejs.com的官方网站发行版本中也是这个版本的v5.0.0 。 所以,我有两种可能的安装方式,任何帮助(请详细说明一下,也许这是一个愚蠢的问题,但这对我来说有点困惑) curl -sL https://deb.nodesource.com/setup_5.x | bash – apt-get install -y nodejs 要么 curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash – sudo apt-get install -y nodejs

Docker EXPOSE。 无法得到它

在过去的两天里,我遇到了docker的麻烦,而且我可以得到它。 在docker doc之后,您可以暴露容器将侦听与EXPOSE连接的EXPOSE 。 到现在为止还挺好! 如果我的应用程序监听端口8080,我应该使用EXPOSE 8080公开EXPOSE 8080容器,并使用EXPOSE 8080 docker run -p 80:8080将其绑定到主要主机的端口80。 这是我的Dockerfile: # DOCKER-VERSION 0.0.1 FROM ubuntu:14.10 # make sure apt is up to date RUN apt-get update # install nodejs and npm RUN apt-get install -y nodejs-legacy npm git git-core ADD package.json /root/ ADD server.js /root/ # start script ADD start.sh /root/ […]

在从节点到Java的调用中实施utf8编码

我正在从一个节点中间层调用一个Java后端,并传递一个string作为查询参数。 一切都很好,直到使用非英文字母字符(例如:ř,ý)。 当Java收到这些字符时,会抛出: parse exception: org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! 这个电话是完美的: GET http://localhost:8000/server/name?name=smith 此调用失败,出现以上错误: GET http://localhost:8000/server/name?name=sořovský 我的问题涉及在哪里解决这个问题。 我已经find了这个节点的utf8编码器,并且正在考虑在将来调用我的Java层之前将我的string编码为utf8。 这是正确的方法,或者我应该在Java内做些什么? 请注意,这是我的相关请求头像: { … accept: 'application/json, text/plain, */*', 'accept-encoding': 'gzip, deflate, sdch', 'accept-language': 'en-US,en;q=0.8,el;q=0.6', … }

docker-compose在node_modules上的卷,但是是空的

我很新的Docker,我想映射我的计算机上的node_modules文件夹(用于debugging目的)。 这是我的docker-compose.yml web: build: . ports: – "3000:3000" links: – db environment: PORT: 3000 volumes: – .:/usr/src/app – /usr/src/app/node_modules db: image: mongo:3.3 ports: – "27017:27017" command: "–smallfiles –logpath=/dev/null" 我与Mac的Docker。 当我运行docker-compose up -d都一切正常,但是它在我的电脑上创build了一个node_modules文件夹,但是它是空的。 我进入我的容器的bash和ls node_modules,所有的包在那里。 我怎样才能得到我的电脑上的容器上的内容呢? 谢谢

无论如何设置npmlogin`npmlogin`没有阅读input从STDIN?

我试图在npm publish容器中自动化npm publish但是当$npm login命令尝试从提示中读取用户名和电子邮件时,我遇到了麻烦: npm login << EOF username password email EOF 它在terminalbash中工作,但不在没有打开STDIN的容器中,并显示以下错误消息: Username: Password: npm ERR! cb() never called! npm ERR! not ok code 0 根据npm-adduser : 从提示中读入用户名,密码和电子邮件。 那么如何在不打开STDIN的情况下运行npm login呢?