Tag: compose

Docker ENTRYPOINT在卷装载后运行

我的Dockerfile有一个脚本在入口点上运行。 容器计划在我的代码所在的卷装上运行,一旦容器装上卷,它就需要运行几个命令。 但是,从运行容器时得到的错误,我相信Docker卷挂载发生在ENTRYPOINT脚本之后。 一旦容器启动,我确定可以使用docker exec选项运行命令。 但是这使得更多的运行命令行。 是否有任何解决方法,甚至通过使用docker撰写? Dockerfile: FROM my-container WORKDIR /my-mount-dir ADD startup-script.sh /root/startup-script.sh ENTRYPOINT ["/root/startup-script.sh"] docker运行: docker run -itd -v / home / user / directory:/ my-mount-dir build-container 注意: startup-script.sh包含应该在挂载的目录文件上运行的命令。

错误:在文件“./docker-compose.yml”中,卷必须是映射,而不是数组

我得到这个错误(错误:在文件'./docker-compose.yml',卷必须是一个映射,而不是一个数组),当我运行“docker – 组成”命令。 我的docker-compose.yml文件看起来像这样。 version: '2' web: build: . ports: – "5000:5000" volumes: – .:/code ngnix: image: "ngnix:alpine" 和我的docker文件看起来像这样 FROM alpine:3.5 MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com" ENV NGINX_VERSION 1.13.3 RUN GPG_KEYS=B0F4253373F8F6F510D42178520A9993A1C052F8 \ && CONFIG="\ –prefix=/etc/nginx \ –sbin-path=/usr/sbin/nginx \ –modules-path=/usr/lib/nginx/modules \ –conf-path=/etc/nginx/nginx.conf \ –error-log-path=/var/log/nginx/error.log \ –http-log-path=/var/log/nginx/access.log \ –pid-path=/var/run/nginx.pid \ –lock-path=/var/run/nginx.lock \ –http-client-body-temp-path=/var/cache/nginx/client_temp \ –http-proxy-temp-path=/var/cache/nginx/proxy_temp \ –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp […]

docker-compose中的Python与具有相同图像的独立容器之间的差异

在我的项目中,我有一个基于ubuntu的dockerized微服务:我想从标准apt-get 2.7.6版本更新到python 2.7.13。 这样做,我遇到了一些模块导入问题。 从那时起,我已经添加到我的pythonpath python2.7/dist-packages的开头,它包含了我所关心的所有模块。 我使用docker-compose build我的微服务映像,但问题是:当我运行docker-compose up ,这个微服务无法导入所有非标准模块,但是当我使用docker run -it image_id /bin/bash创build自己的容器时, docker run -it image_id /bin/bash然后运行一个python shell并导入任何上述模块,一切正常。 甚至当我运行相同的python脚本时,它也会通过所有这些导入语句(但由于没有正确的链接而被隔离运行,所以导致其他问题失败)。 我已经断言python 2.7.13正在docker上运行docker-compose up ,当我运行我自己的容器。 我已经清除了所有的容器,图像和caching,并重build了没有进展。 docker文件末尾运行的命令是CMD python /filename/file.py 。 任何想法可能会导致这种差异? 编辑:根据要求,这里的Dockerfile。 文件结构只是一个包含子文件夹的项目文件夹,每个文件夹都是自己的dockerized微服务。 这里关心的是document_analyzer,下面是docker-compose文件的相关部分。 没有正确安装的文件的例子是PyPDF2,pymongo,boto3。 FROM ubuntu:trusty # Built using PyImageSearch guide: # http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/ # Install dependencies RUN \ apt-get -qq update && apt-get -qq […]

如何使用docker-compose环境variables来填充configuration文件

我是新来的docker写作。 我试图了解如何通过docker-compose传递环境variables来在Dockerfile的构build阶段填充configuration文件中缺less的variables值,所以在运行阶段,我将运行service- rabbitmq ,其configuration填充envvariables值。 在env_file: -compose yml文件中,我有一个env_file:以及environment: ,问题如何将它们传递给填充configuration文件。 任何帮助,一个想法将不胜感激,当然一个简单的例子。 示例rabbitmqconfiguration文件(需要用$ SSL_PORT的值填充envvariables): [{rabbit, [ {loopback_users, []}, {ssl_listeners, [$SSL_PORT]}, {ssl_options, [{cacertfile,"/etc/rabbitmq/ca/cacert.pem"}, {certfile,"/etc/rabbitmq/server/cert.pem"}, {keyfile,"/etc/rabbitmq/server/key.pem"}, {verify,verify_none}, {fail_if_no_peer_cert,false}]} ]} ].

运行使用docker撰写节点容器时出错

在运行“docker-compose up”时,出现以下错误: npm info lifecycle server@1.0.0~dev: server@1.0.0 > server@1.0.0 dev /code/app > nodemon -L ./bin/www –exec babel-node sh: 0: getcwd() failed: No such file or directory path.js:1144 cwd = process.cwd(); ^ Error: ENOENT: no such file or directory, uv_cwd at Error (native) at Object.resolve (path.js:1144:25) at Function.Module._resolveLookupPaths (module.js:361:17) at Function.Module._resolveFilename (module.js:431:31) at Function.Module._load (module.js:388:25) at […]

使用Docker设置多个Ubuntu容器

需求: 基于Ubuntu 14.04的docker实例的设置,其中1个实例的行为像一个网关,用于所有其他networking通信。 为这样的设置创build一个泊坞窗撰写文件… 所有这些情况都需要在他们自己的专用dockernetworking和默认docker桥接器上进行。 创build了一个Dockerfile FROM ubuntu:14.04 # Set environment variables. ENV HOME /root # Define working directory. WORKDIR /root # Define default command. CMD ["/bin/bash"] 泊坞窗,compose.yml version: '3' services: main: image: testenginer_main tty: true first: image: testenginer_main tty: true 其中testenginer_main是我使用Dockerfile设置生成的图像文件 我检查了这两个实例正在运行 问题是我想有2个networking1连接到docker的默认桥接networking和第二个连接到其他容器,使其他容器可以通过networking1访问主networking

如何快速将maven项目整合到docker中

我有一个maven项目,其项目结构如下: parentProject: parentProject: APorject.war BProject.war parentApiProject: AProjectApi.jar BProjectApi.jar 我想同时打包这个项目,下面的四个项目被复制到四个docker中,并且会跑起来。 有什么好的想法和技术解决scheme吗?

如何使用docker-compose在Docker镜像和入口点之间运行命令?

docker工作者撰写v3 我试图运行一些特定于应用程序的命令,比如每当我运行docker docker-compose up时使用composer update ,让我的docker-compose.yml文件看起来像这样 version: '3' services: app1: image: laraedit/laraedit ports: – 3000:80 volumes: – ./appfolder:/var/www/appfolder 如果我在入口点运行我的第一次运行命令,它将覆盖默认laraedit / laraedit运行的所有命令。 (至less我这样认为,因为当我的入口点命令完成时容器总是停止) 我不想打扰laraedit / laraedit的启动过程,我只是想执行一些命令。 如果我不使用docker-compose,那么我将在本地使用laraedit / laraedit Dockerfile,然后我可以编辑它并在其中添加一个RUN语句。 但是由于我没有Dockerfile,并且我不能在没有closures容器的正常启动的情况下创build一个入口点,我不知道如何去执行每一次运行docker-compose up 。 我试过的东西: 添加我自己的Dockerfile (replacelaraedit的) 运行入口点脚本 (阻止laraedit的启动) 将它们作为命令运行(命令没有执行)

下载只有build.gradle文件的依赖关系

是否有可能只使用build.gradle文件下载gradle依赖关系? 我想要完成的是以下内容: 我有一套unit testing,我想执行它们(作为CI过程的一部分)在docker集装箱内。 最初,我使用来自docker hub的openjdk:8-jdk镜像作为testing的基础镜像。 所以,docker撰写文件包含以下内容: version: '3.2' services: unit: image: openjdk:8-jdk volumes: – ..:/usr/test working_dir: /usr/test command: sh -c "exec ./gradlew junitPlatformTest -Punit -p moduleA/" 整个项目安装在容器内的/usr/test目录下。 当容器启动时,它会针对moduleA执行junitPlatformTest任务。 openjdk:8-jdk映像的问题在于,每次运行unit服务时都会下载gradle及其依赖关系。 为了解决这个问题,我决定创build一个新的图像,这个图像会有gradle和我已经下载的项目依赖项。 Dockerfile如下: FROM openjdk:8-jdk COPY . /usr/test WORKDIR /usr/test RUN apt-get -y install wget unzip RUN wget https://services.gradle.org/distributions/gradle-4.1-bin.zip RUN mkdir /opt/gradle RUN unzip -d /opt/gradle […]

GitLab无法连接数据库

我正在尝试在Gubter中为Kubernetes使用单独的容器,用于GitLab,Redis和PostgreSQL。 我按照PostgreSQL,Redis和GitLab的顺序启动这三个容器。 前两个工作正常,但是当我尝试启动GitLab时,它以某种方式没有find数据库configuration。 [root@cent-gluster-workstation ~]# kubectl logs gitlab-3743104516-plk3x -p Initializing logdir… Initializing datadir… Installing configuration templates… Configuring gitlab… Configuring gitlab::database ERROR: Please configure the database connection. Refer http://git.io/wkYhyA for more information. Cannot continue without a database. Aborting… 我确认我能够从GitLab窗格内telnet到5432端口上的PostgreSQL窗格。 root@gitlab-1182173148-t47fj:/home/git/gitlab# telnet postgresql 5432 Trying 10.42.154.36… Connected to postgresql.default.svc.cluster.local. Escape character is '^]'. GitLab和PostgreSQL的部署和服务configuration: [root@cent-gluster-workstation ~]# cat […]