标签: docker-compose

Rails服务器仍在新打开的docker容器中运行

我想使用Docker部署我的rails项目.所以我使用Docker-Compose.但我得到一个奇怪的错误消息.当运行docker-compose up(这包含带有postgresql的db-container,带有rails的redis和web容器)时,我得到一个

web_1 | => Booting Puma web_1 | => Rails 4.2.4 application starting in production on http://0.0.0.0:3000 web_1 | => Runrails server -h for more startup options web_1 | => Ctrl-C to shutdown server web_1 | A server is already running. Check /usr/src/app/tmp/pids/server.pid. web_1 | Exiting 所以我无法理解为什么我会收到这条消息,因为每次运行docker-compose时,新容器都会启动,而不是之前的容器.即使想要删除这些server.pid我也无法做到这一点,因为这个容器没有运行.

我的docker-compose.yml文件

web:
  dockerfile: Dockerfile-rails
  build: .
  command: bundle exec rails s -p 3000 -b '0.0.0.0'
  ports:
    - "80:3000"
  links:
    - redis
    - db
  environment:
    - REDISTOGO_URL=redis://user@redis:6379/

redis:
  image: redis …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker dockerfile docker-compose

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

无法连接到Mac OS X上的Docker守护程序

我想docker-compose在Mac OS X El Capitan(v10.11.2)上运行多容器应用程序.

但是,命令$ docker-compose up命令抱怨它无法连接到Docker守护程序.

错误:无法连接到Docker守护程序 - 您可能需要运行docker-machine start default.

只有在执行后$ eval "$(docker-machine env default)"我才能访问该docker-compose命令.

为什么这样,我怎么能克服这个额外的步骤?

macos daemon docker docker-compose

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

docker-compose volumes_from等同于版本3

我正在尝试使用docker compose创建Nginx/PHP FPM设置,并且遇到版本3卷语法/更改的问题.

我的Dockerfile:

FROM php:7-fpm
VOLUME /var/www/html
Run Code Online (Sandbox Code Playgroud)

我的docker-compose.yml:

version: "3"
services:
  php:
    build: .
    volumes:
      - ./html:/var/www/html
  web:
    image: nginx
    links:
      - php
    ports:
      - "8888:80"
    volumes:
      - php:/var/www/html
      - ./default.conf:/etc/nginx/conf.d/default.conf
volumes:
  php:
Run Code Online (Sandbox Code Playgroud)

当我添加一个index.php文件时./html,我可以通过访问http:// localhost:8888来查看,但是任何静态文件(如CSS)都返回404,因为Nginx无法在其容器中找到它们(/var/www/html在nginx容器上为空).使用版本3 docker compose文件不再具有volumes_from,这基本上就是我想要复制的内容.

如何让它与版本3一起使用?

docker docker-compose

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

E:软件包“ mysql-client”在使用docker compose的php-fpm映像构建中没有安装候选对象

我是Docker的新手,所以我尝试使用laravel项目了解更多有关Docker的信息,并按照以下教程进行操作:

https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose?comment=77842

我已经根据教程中的内容对Dockerfile进行了一些调整,但是即使教程文件也会导致相同的结果。

FROM php:7.3-fpm

# Copy composer.lock and composer.json
COPY composer.lock composer.json /var/www/
# Install dependencies
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
    apt-get update && apt-get install -y mysql-client \


RUN npm install -g npm

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*


# Install extensions
RUN docker-php-ext-install pdo pdo_mysql

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Add user for laravel application
RUN groupadd -g 1000 www
RUN …
Run Code Online (Sandbox Code Playgroud)

laravel docker dockerfile docker-compose

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

docker-compose 更改主容器的名称

我有一个简单的前端和后端应用程序。我有一个 docker-compose 文件,但它位于 frontend 文件夹内。因此,当我运行它时,前端和后端容器都在前端容器下(它采用文件夹的名称),如何重命名这个主容器?我用的是3.9版本

version: "3.9"
services:
  be_service:
    container_name: backend
    build:
      context: ../backend
      dockerfile: ./Dockerfile
    ports:
      - "8089:8080"
  fe_service:
    container_name: frontend
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - "8088:80"
    depends_on:
      - be_service
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose

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

使用Gunicorn的Docker中的Django开发自动重新加载代码

我正在使用Docker容器进行Django开发,容器使用Nginx运行Gunicorn.我希望代码更改为自动加载,但我可以加载它们的唯一方法是使用docker-compose(docker-compose build)重建."build"的问题在于它会重新运行我的所有pip安装.

我正在使用Gunicorn --reload旗帜,这显然应该做我想要的.这是我的Docker配置文件:

## Dockerfile:
FROM python:3.4.3
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r /code/requirements/docker.txt

## docker-compose.yml:
web:
  restart: always
  build: .
  expose:
    - "8000"
  links:
    - postgres:postgres
  volumes:
    - /usr/src/app/static
  env_file: .env
  command: /usr/local/bin/gunicorn myapp.wsgi:application -w 2 -b :8000 --reload

nginx:
  restart: always
  build: ./config/nginx
  ports:
    - "80:80"
  volumes:
    - /www/static
  volumes_from:
    - web
  links:
    - web:web

postgres:
  restart: always
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  ports:
    - "5432:5432"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了其他一些Docker命令(docker-compose …

django gunicorn docker docker-compose

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

docker服务和堆栈有什么区别?

我想知道这些事情之间有什么区别.它们具有几乎相同的命令并给出相同的结果.

docker-compose docker-swarm

40
推荐指数
2
解决办法
7293
查看次数

在 docker-compose 文件中启用“progress plain”

当我使用 运行构建时docker-compose build --progress plain,它在构建过程中显示比默认 BuildKit 输出更有用的信息。

有没有办法将简单的进度选项嵌入到 docker-compose.yml 文件本身中,这样我就可以调用docker-compose build并仍然获得更好的输出?

我尝试添加这些构建参数,但它们似乎都不起作用:

build:
    args:
        #progress: plain  
        #- progress=plain  
        #- progress plain  
        #BUILDKIT_PROGRESS: plain  
        #- BUILDKIT_PROGRESS=plain  
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-buildkit

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

strconv.Atoi:解析“”:语法无效

我正在尝试管理一个多容器项目。在某些时候我收到这个我不明白的错误。我尝试获取日志,但没有。

version: "3.7"
services:
  api:
    build: ../api
    command: sh -c "rails s"
    working_dir: /app
    depends_on:
      - database
    networks:
      - citrine-api
      - citrine-front
    ports:
      - 3000:3000
    volumes:
      - type: bind
        source: ../api
        target: /app
  front:
    build: ../frontend
    command: sh -c "yarn dev"
    depends_on:
      - api
    networks:
      - citrine-front
    volumes:
      - type: bind
        source: ../frontend
        target: /app
    ports:
      - 5173:5173
  database:
    image: keinos/sqlite3
    networks:
      - citrine-api
    ports:
      - 3306:3306
networks:
  citrine-api: {}
  citrine-front: {}
Run Code Online (Sandbox Code Playgroud)

strconv.Atoi:解析“”:语法无效

从本地构建的映像是简单的 dockerfile。

有人有办法纠正这个问题吗?

docker dockerfile docker-compose

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

在docker-compose yml中重用环境变量

是否可以重用多个容器之间共享的环境变量以避免重复,如下例所示:

version: '2'

services:

  db:
    image: example/db
    ports:
      - "8443:8443" 
    container_name: db
    hostname: db
    environment:
      - USER_NAME = admin 
      - USER_PASSWORD = admin 

svc:
  image: example/svc
  depends_on:
    - db
  ports:
    - "9443:9443"
  container_name: svc
  hostname: svc
  environment:
    - DB_URL = https://db:8443
    - DB_USER_NAME = admin
    - DB_USER_PASSWORD = admin 
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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