【发布时间】:2020-08-12 10:48:32
【问题描述】:
我已经按照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容器应该做什么?你如何与之互动?它需要是一个永远在线的长期运行的过程吗? (docker-compose run backend bash可以在不寻常的情况下为您提供一个临时容器,您确实需要一个交互式 shell 来调试您的容器设置。) -
根据文章,它与您提到的没有太大区别,只是它在不同的容器中。我知道我可以运行您提到的命令,我只是想知道为什么我卡在
Attaching to ...以及如何解决它。 -
您应该可以删除该块而不会产生不良影响。
标签: ruby-on-rails docker docker-compose