微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker-compose无法打开/ bin / bash

如何解决docker-compose无法打开/ bin / bash

按照evilmartians的教程,我已经为Rails设置了一个docker-compose文件,像这样。

version: '3.4'

services:
  app: &app
    build:
      context: .
      dockerfile: ./.dockerdev/Dockerfile
      args:
        RUBY_VERSION: '2.6.5'
        MysqL_MAJOR: '14'
        NODE_MAJOR: '11'
        YARN_VERSION: '1.16.0'
        BUNDLER_VERSION: '2.1.4'
    image: myapp-dev:1.2.0
    tmpfs:
        - /tmp

  backend: &backend
    <<: *app
    stdin_open: true
    tty: true
    volumes: 
      - .:/app:cached
      - rails_cache:/app/tmp/cache
      - bundle:/bundle
      - node_modules:/app/node_modules
      - packs:/app/public/packs
    environment:
      - NODE_ENV=development
      - RAILS_ENV=${RAILS_ENV:-development}
      - DB_USERNAME=root
      - DB_DATABASE=myapp_development
      - DB_PORT=3306
      - DB_HOST=MysqL
      - REdis_URL=redis://redis:6379/
      - BOOTSNAP_CACHE_DIR=/usr/local/bundle/_bootsnap
      - WEBPACKER_DEV_SERVER_HOST=webpacker
      - WEB_CONCURRENCY=1
      - HISTFILE=/app/log/.bash_history
      - EDITOR=vi
    depends_on:
      - MysqL
      - redis
      - dynamodb
      - webpacker

  runner:
    <<: *backend
    command: ["/bin/bash"]
    ports:
      - '3000:3000'
      - '3002:3002'

  rails:
    <<: *backend
    command: ["./.dockerdev/scripts/start_rails.sh"]
    ports:
      - '3000:3000'

  MysqL:
    image: MysqL:5.7
    environment:
      MysqL_ROOT_PASSWORD: root
      MysqL_USERNAME: root
      MysqL_PASSWORD: root
    ports:
      - '3306:3306'

  redis:
    image: redis:3.2-alpine
    volumes:
      - redis:/data
    ports:
      - 6379

  webpacker:
    <<: *app
    command: ["./.dockerdev/scripts/start_webpack_dev.sh"]
    ports:
      - '3035:3035'
    volumes:
      - .:/app:cached
      - bundle:/bundle
      - node_modules:/app/node_modules
      - packs:/app/public/packs
    environment:
      - NODE_ENV=${NODE_ENV:-development}
      - RAILS_ENV=${RAILS_ENV:-development}
      - WEBPACKER_DEV_SERVER_HOST=0.0.0.0

  dynamodb:
    image: amazon/dynamodb-local
    ports:
      - "8000:8000"

volumes:
  MysqL:
  redis:
  bundle:
  node_modules:
  rails_cache:
  packs:

但是,当我运行docker-compose up runner时,它总是停留在Attaching to myapp_runner_1上。

当我使用docker exec -it myapp_runner_1 /bin/bash从另一个bash窗口/选项卡进入容器并运行ps -Al时,我看到有另一个bash进程正在运行。只是我似乎无法在原始窗口/选项卡中运行任何东西。

我在做错什么吗?

解决方法

也许这可能有所帮助:

  runner:
    <<: *backend
    command: ["/bin/bash"]
    ports:
      - '3000:3000'
      - '3002:3002'
    stdin_open: true
    tty: true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。