标签: docker-compose

Docker在运行之前组合卷安装

我有一个Dockerfile,我指的是docker-compose.yml.

我希望docker-compose.yml中的卷安装发生在Dockerfile之前RUN.

Dockerfile:

FROM node

WORKDIR /usr/src/app

RUN npm install --global gulp-cli \
 && npm install

ENTRYPOINT gulp watch
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

version: '2'

services:
  build_tools:
    build: docker/gulp
    volumes_from:
      - build_data:rw

  build_data:
    image: debian:jessie
    volumes:
      - .:/usr/src/app
Run Code Online (Sandbox Code Playgroud)

首先完成Dockerfile,然后从docker-compose安装它是完全合理的,但有没有办法解决它.

我想保持Dockerfile的通用性,同时从compose中传递更多特定的位.也许这不是最好的做法?

docker dockerfile docker-compose

27
推荐指数
2
解决办法
2万
查看次数

测试容器完成时终止docker compose

我目前正在运行一个docker-compose堆栈,用于基本集成测试,包括量角器测试运行器,服务于网页的nodejs服务器和服务于java后端的wildfly服务器.

堆栈是从我的构建服务器(concourse ci)中的dind(docker in docker)容器中运行的.

但似乎容器在完成量角器测试时不会终止.

因此,由于wildfly和nodejs的容器仍在运行,因此构建任务永远不会完成......

如何在测试结束时使作曲成功或失败?

# Test runner
test-runner:
  image: "${RUNNER_IMG}"
  privileged: true
  links:
    - client
    - server
  volumes:
  - /Users/me/frontend_test/client-devops:/protractor/project
  - /dev/shm:/dev/shm
  entrypoint:
    - /entrypoint.sh
    - --baseUrl=http://client:9000/dist/
    - /protractor/conf-dev.js
    - --suite=remember
# Client deployment
client:
  image: "${CLIENT_IMG}"
  links:
    - server
# Server deployment
server:
  image: "${SERVER_IMG}"
Run Code Online (Sandbox Code Playgroud)

docker docker-compose concourse

27
推荐指数
3
解决办法
8564
查看次数

使用 docker-compose 的堆栈名称

有没有办法在使用 docker-compose 时设置堆栈名称?

目前它采用文件夹名称(这是一个可怕的区域),这会导致一些混乱。

例如,我们有几个项目有一个包含数据库堆栈的数据库文件夹。在单个主机上运行这些时,我们现在有几个数据库堆栈。

docker-compose

27
推荐指数
2
解决办法
1万
查看次数

在通过docker-compose运行时,Flask CLI抛出“ OSError:[Errno 8] Exec格式错误”

我正在使用自定义脚本运行Flask应用程序。还是尝试,无论如何。

我在Windows 10上,应用程序应在Linux Docker容器中使用以下命令运行:

docker-compose up api
Run Code Online (Sandbox Code Playgroud)

Docker-compose是version 1.23.2。在dockerfile中,该api服务通过以下命令运行:

command: python manage.py run --host "0.0.0.0" --with-threads
Run Code Online (Sandbox Code Playgroud)

在尝试启动时,我看到了异常

OSError: [Errno 8] Exec format error: '/api/manage.py'
Run Code Online (Sandbox Code Playgroud)

我最初以为这将是“可怕的Windows行尾”,再次给我,但是dos2unix在我的所有源文件上运行都无法解决问题。

如何避免此错误?


manage.py

docker-compose up api
Run Code Online (Sandbox Code Playgroud)

完整回溯

api_1          | Traceback (most recent call last):
api_1          |   File "manage.py", line 22, in <module>
api_1          |     cli()
api_1          |   File "/usr/local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
api_1          |     return self.main(*args, **kwargs)
api_1          |   File "/usr/local/lib/python3.6/site-packages/flask/cli.py", line 380, in main
api_1          | …
Run Code Online (Sandbox Code Playgroud)

python windows flask docker docker-compose

27
推荐指数
3
解决办法
2万
查看次数

Docker Compose + Rails:迁移的最佳实践?

我刚刚阅读了有关在Docker中运行Rails开发环境的这篇文章.好文章,效果很好.设置完所有后,我决定继续设置生产环境.

目标:

我希望rake db:create && rake db:migrate每次运行我的泊坞窗图像.

问题:

如果我移动数据库创建和迁移步骤...

docker-compose run app rake db:create
docker-compose run app rake db:migrate
Run Code Online (Sandbox Code Playgroud)

...进入Dockerfile ...

RUN rake db:create && rake db:migrate
Run Code Online (Sandbox Code Playgroud)

......会引发错误......

could not translate host name "postgres" to address: Name or service not known
Run Code Online (Sandbox Code Playgroud)

...因为hostdatabase.yml...

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  timeout: 5000
  username: postgres
  host: postgres
  port: 5432

development:
  <<: *default
  database: rails_five_development
Run Code Online (Sandbox Code Playgroud)

...设置为postgres我的docker-compose.yml...中指定的服务名称

version: "2"
services:
  postgres: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker dockerfile docker-compose

26
推荐指数
2
解决办法
1万
查看次数

docker-machine和docker-compose有什么区别?

我想我不明白.首先,我创建了docker-machine:

$ docker-machine create -d virtualbox dev
$ eval $(docker-machine env dev)
Run Code Online (Sandbox Code Playgroud)

然后我写了Dockerfile和docker-compose.yml:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/


version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    restart: always
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db
Run Code Online (Sandbox Code Playgroud)

最后,我构建并启动了图像:

$ docker-compose build --no-cache
$ docker-compose start
Run Code Online (Sandbox Code Playgroud)

我检查了我的虚拟机的ip

$ docker-machine ip dev
Run Code Online (Sandbox Code Playgroud)

并在我的浏览器中成功打开了该网站.但是当我对代码进行一些更改时 - 没有任何反应.所以我登录到"dev"机器:

$ docker-machine ssh dev
Run Code Online (Sandbox Code Playgroud)

我没找到我的代码!所以我登录了docker"web"图片: …

docker-compose docker-machine

26
推荐指数
1
解决办法
1万
查看次数

使用docker-compose将文件添加到标准图像

我不确定是否有明显的东西逃脱了我或者是否只是不可能但是我正在尝试用来自docker hub的图像组成一个完整的应用程序堆栈.

其中一个是mysql,它支持通过卷添加自定义配置文件,并从已安装的目录运行.sql文件.

但是,我在运行docker-compose的机器上有这些文件,而不是在主机上.在运行entrypoint/cmd之前,是否无法指定本地计算机中的文件复制到容器中?我是否真的必须为这种情况创建一切的本地图像?

docker docker-compose

26
推荐指数
4
解决办法
4万
查看次数

如何从docker-compose.yml指定nvidia运行时?

我可以通过以下命令从命令行运行一个具有访问GPU的tensorflow容器

$ sudo docker run --runtime=nvidia --rm gcr.io/tensorflow/tensorflow:latest-gpu

我希望能够从docker-compose运行这个容器.可以从中指定--runtime标志docker-compose.yml吗?

docker docker-compose tensorflow nvidia-docker tensorflow-gpu

26
推荐指数
3
解决办法
1万
查看次数

如何将环境变量传递给docker-compose up

我正在尝试运行一个容器.我已将图像上传到私有Docker注册表.我想写一个compose文件来下载和部署图像.但我想将TAG名称作为docker-compose run命令中的变量传递.我的compose文件如下所示.如何将KB_DB_TAG_VERSION的值作为docker-compose up命令的一部分传递?

version: '3'
services:
   db:
    #build: k-db
    user: "1000:50"
    volumes:
      - /data/mysql:/var/lib/mysql
    container_name: k-db
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    image:  XX:$KB_DB_TAG_VERSION
    image: k-db
    ports:
      - "3307:3306"
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose

26
推荐指数
5
解决办法
3万
查看次数

Docker-compose up:获取服务器 API 版本时出错:('连接中止。',ConnectionRefusedError(61,'连接被拒绝'))

我正在尝试docker-compose up在我的终端中执行命令。首先,我导航到找到 docker-compose.yaml 的文件目录。然后我写命令。服务器在端口 80 上。我收到以下错误:

Traceback (most recent call last):
      File "site-packages/docker/api/client.py", line 205, in _retrieve_server_version
      File "site-packages/docker/api/daemon.py", line 181, in version
      File "site-packages/docker/utils/decorators.py", line 46, in inner
      File "site-packages/docker/api/client.py", line 228, in _get
      File "site-packages/requests/sessions.py", line 543, in get
      File "site-packages/requests/sessions.py", line 530, in request
      File "site-packages/requests/sessions.py", line 643, in send
      File "site-packages/requests/adapters.py", line 498, in send
    requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

php api docker server docker-compose

26
推荐指数
7
解决办法
2万
查看次数