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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...