Tag: docker docker

Docker组成knex脚本错误

我的docker合成文件看起来像: version: '2' services: web: build: context: . image: myimage environment: – AWS_REGION=region – NODE_ENV=development command: bash -c "sleep 10 && npm run knex migrate:latest –knexfile src/knexfile.js" depends_on: – db db: image: mysql ports: – 3306:3306 environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_USER=root – MYSQL_PASSWORD=root – MYSQL_DATABASE=mydb volumes: – /var/lib 这个想法是,当我做一个docker组成 – 它组成了一个mysql,并做了链接,我的要求是,当myImage旋转起来,有一些我想要执行的移植。 试过2种方法: 如上所示在泊坞窗撰写文件中添加命令。 如果没有命令,旋转容器,然后打开容器,然后运行knex migrate命令。 […]

如果我更改一个文件,是否需要在Docker容器中重buildpython库?

我正在使用cleverhans库来完成我的项目。 但是,在当前版本的cleverhans / attacks.py中提供的CarliniWagnerL2类实际上在Docker的版本中是缺less的。 所以我试着手动编译当前版本的python文件到.pyc文件并运行以下命令 docker cp host_address containerID:/address/ 用新文件replace旧文件。 我已经testing了docker中的文件已经更改为我的当前版本。 但是,当我尝试从cleverhans导入类CarliniWagnerL2,同样的错误说 from cleverhans.attacks import CarliniWagnerL2 ImportError: cannot import name CarliniWagnerL2 我需要重build容器吗? 另外,由于cleverhans不提供我的DockerFile和其他东西,如果我需要重buildpython库,我应该如何重build图像? 谢谢

Dockerangular度实例无法从Docker express实例获取数据

通过Docker撰写我build立了一组图像。 其中,有一个node.js / express服务器和一个angularjs 2.0前端。 这是docker-compose文件: version: "3.3" services: angular: image: micheleminno/angular-client:latest build: ./angular-client ports: – "4200:4200" express: image: micheleminno/express-server:latest build: ./express-server depends_on: – mysql – elasticsearch ports: – "3000:3000" networks: – sql – nosql elasticsearch: build: elasticsearch/ ports: – "9200:9200" – "9300:9300" networks: – nosql environment: – MAX_OPEN_FILES=1048576 cap_add: – IPC_LOCK ulimits: memlock: soft: […]

Python和Docker:以可编辑的方式将远程私有git存储库安装到容器中

我试图从requirements.txt中将基于私有python的git repos安装到docker容器中,以便在开发过程中可以很容易地进行编辑。 例如,我有一个Django项目,其中包含一个Dockerfile,允许在Docker容器中构build该项目。 (它可能看起来像这样https://github.com/JoeJasinski/docker-django-demo/blob/master/Dockerfile )。 现在,假设项目有一个如下所示的从一个私有仓库中提取代码的requirements.txt文件。 django=1.11.2 -e git+git@github.com:myorg/my-private-project.git#egg=my_private_project -e git+ssh://git@git.example.com/second-private-project@mytag#egg=second_private_project -e git+https://github.com/myorg/third-private-project#egg=third_private_project 理想情况下,我会这样做,所以我可以编辑我的主项目和依赖回购站,而无需每次都重新构buildDocker容器。 Dockerfile“ADD。dest /”命令可以对主项目进行编辑,但是我很难find安装这些私有存储库的好方法。 通常(在Docker之外),pip -e标志使得repos可以在适当位置进行编辑,这是非常好的,因为我可以像编辑其他repo一样编辑和提交它们。 但是,在Docker中,容器无法访问下载私有回购站所需的ssh私钥(这可能是一件好事,所以我们不会将密钥构build到Docker镜像中)。 我以为有一个想法就是在build造之前在集装箱外面下载私人仓库。 然后不知何故,这些回购将在构build时“添加”到Docker容器,然后单独添加到PYTHONPATH(也许在运行时?)。 但是,我觉得我过分复杂的情况。 任何关于一个好的,简单的(Pythonic)的方式来安装私人的基于Python的git仓库到一个容器的build议,以便在主项目和从属仓库上开发很容易?

服务运行,可以通过docker-compose ping但容器A看不到容器B?

我正在运行一个节点应用程序(容器A),通过在Mac上的Docker运行一个快速微服务依赖项(容器B)。 容器A的Dockerfile FROM node WORKDIR /usr/src/app COPY package.json package-lock.json ./ RUN npm install COPY . . EXPOSE 9000 CMD [ "node", "server.js" ] 容器B的Dockerfile FROM node WORKDIR /usr/src/app COPY package.json package-lock.json ./ RUN npm install COPY . . EXPOSE 3000 CMD [ "node", "server.js" ] 泊坞窗,compose.yml version: '3' services: containerA: build: . ports: – '127.0.0.1:9000:9000' […]

Docker无法为RoR应用程序提供GEMFILE文件

我试图在Windows 10上使用Docker Toolbox运行Ruby on Rails应用程序。 我在文件夹E:\项目中有docker-compose.yml文件,内容如下: version: '3' services: expertiza: image: winbobob/expertiza:ruby-2.2.7 ports: – '3000:3000' volumes: – '.:/expertiza' depends_on: – scrubbed_db – redis links: – scrubbed_db – redis working_dir: /expertiza command: bundle exec thin start -p 3000 environment: REDIS_HOST: redis scrubbed_db: image: mysql:5.7 volumes: # https://stackoverflow.com/questions/25920029/setting-up-mysql-and-importing-dump-within-dockerfile – '/expertiza/db:/docker-entrypoint-initdb.d' environment: MYSQL_ROOT_PASSWORD: ********* redis: image: redis:alpine 所有与应用程序相关的文件都位于文件夹E:\ […]

使用Docker-compose将文件复制到Docker容器中的tomcat webapps文件夹

我有一个像我不得不复制几个configuration文件到docker容器内存在的tomcat webapps文件夹的场景。 这是我使用的dockerfile FROM tomcat:7.0.82-jre8 RUN apt-get update && apt-get -y upgrade WORKDIR /usr/local/tomcat COPY /app.war /usr/local/tomcat/webapps/app.war RUN apt-get update && apt-get install -y dos2unix EXPOSE 8080 COPY tomcat-users.xml /usr/local/tomcat/conf/ 一旦我们运行docker,它实际上做了以下 它实际上将app.war复制到tomcat的webapps文件夹中,并提取到一个名为“app”的文件夹 Docker将尝试启动tomcat服务器。 我想将我的configuration文件复制到tomcat webapps文件夹内的提取的war文件。 在启动tomcat服务器之前,以下是属性的位置,如tomcat_home / webapps / app / conf / services.properties 我有一个挑战,复制此属性文件到相应的文件夹启动tomcat caontainer之前。 我不知道如何使用docker-compose来做到这一点。 在docker-compose.yml中还是使用dockerfile是否真的有可能? 任何答案都是可观的。

由于EAI_AGAIN,电子邮件不在Docker容器内使用Nodemailer发送

我已经在Docker容器中设置了Nodemailer,但是我一直无法获得发送的邮件。 我在Docker之外运行相同的代码来testing它是否工作,并发送电子邮件。 所以它必须与我的docker容器设置有关。 我用来开发的docker-compose和docker-file不是花哨的,只是必需品,而我使用docker-toolbox,因为我没有Windows 10专业版。 我发现类似的问题,例如Nodemailer在一年多的Docker容器上部署并且不包含示例代码或答案之后不发送邮件 。 另外,发现https://stackoverflow.com/a/25270794/1148107 ,并尝试更改端口为465 TLS打开和closures,但仍不发送邮件。 错误 一个EAI_AGAIN错误被抛出,我抬头,是一个DNS查找超时问题,所以可能是一个networking连接错误或代理相关的错误,但我不是docker(或devops)大师,所以我有问题搞清楚解决它。 任何人都可以解释如何让Nodemailer在Docker容器中工作吗? Error: getaddrinfo EAI_AGAIN smtp.mailtrap.io:2525 at Object._errnoException (util.js:1021:11) at errnoException (dns.js:58:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:95:26) code: 'ECONNECTION', errno: 'EAI_AGAIN', syscall: 'getaddrinfo', hostname: 'smtp.mailtrap.io', host: 'smtp.mailtrap.io', port: 2525, command: 'CONN' Docker撰写 services: server: container_name: server build: context: . dockerfile: .docker/node.${APP_ENV}.dockerfile ports: – "3000:3000" […]

带命名卷的PostgreSQL不是第二次启动

我正在使用bitnami/postgresql:9.6镜像启动postgresql DB。 我想在容器的重新启动之间保持数据,并使用命名卷。 这是我的docker文件configuration: postgresql: image: 'bitnami/postgresql:9.6' ports: – 5432 environment: – POSTGRESQL_REPLICATION_MODE=<name> – POSTGRESQL_REPLICATION_USER=<name> – POSTGRESQL_REPLICATION_PASSWORD=<name> – POSTGRESQL_USERNAME=<name> – POSTGRESQL_PASSWORD=<name> – POSTGRESQL_DATABASE=<name> – POSTGRES_INITDB_ARGS="–encoding=utf8" volumes: – volume-postgresql:/bitnami/postgresql/data volumes: volume-postgresql: 但是当我重新启动容器,我得到以下错误: postgresql | nami INFO Initializing postgresql postgresql | Error executing 'postInstallation': initdb: directory "/opt/bitnami/postgresql/data" exists but is not empty postgresql | If you want […]

使用环境API密钥调用控制台应用程序容器的Rancher API调用

我有要求使用环境API密钥从Rancher UI调用容器。 这是我的情况: 我有一个.NetCore 2.0控制台应用程序与一个testing项目(C#库)一旦我build立我的控制台应用程序与testing项目,我已经部署所有DLL的Unix服务器,我使用Dockerbuild立我的图像和容器。 我正在使用前端应用程序pipe理器pipe理器,并设置所有必要的variables。 我的容器运行良好,项目正在做它应该做的事情。 我必须使整个项目自动化,如Windows任务计划程序,如果安装正确,可以每5分钟运行一次,我想每5分钟调用一次Main.cs,但在我的情况下,我必须使用http://rancher.com/ docs / rancher / v1.6 / en / api / v2-beta /并调用Main.cs. 我已经创build了可用于调用API的环境API密钥,并需要弄清楚如何进行该调用。 任何帮助将不胜感激!