Ich bin eine Rails-Anwendung mit Capistrano bereitstellen. Es hat normalerweise kein Problem mit Nginx und Passenger.Wie Capistrano mit Rails und Docker-Compose verwenden?
Jetzt ziehe ich, um docker-compose zu verwenden.
Capfile
# Load DSL and set up stages
require "capistrano/setup"
require "capistrano/deploy"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
deploy.rb
namespace :deploy do
desc "docker compose task"
task docker_compose: :updated do
on roles(:web, :app), in: :groups, limit: 3, wait: 10 do
within release_path do
execute "cd #{release_path} && docker-compose up --build -d"
end
end
end
after 'deploy:updated', 'deploy:docker_compose'
end
Docker-compose.yml
version: '2'
services:
db:
image: mysql/mysql-server:5.7
environment:
- MYSQL_ROOT_PASSWORD=myapp12345
redis:
image: 'redis:3.2-alpine'
command: redis-server
ports:
- '6379:6379'
volumes:
- 'redis:/var/lib/redis/data'
website:
depends_on:
- 'redis'
- 'db'
build: .
image: namle/myapp_api
ports:
- '3001:3000'
volumes:
- '.:/myapp_ruby'
environment:
- REDIS_URL=redis://redis
env_file:
- '.env'
sidekiq:
depends_on:
- 'redis'
- 'db'
build: .
command: bundle exec sidekiq
environment:
- REDIS_URL=redis://redis
volumes:
- '.:/myapp_ruby'
env_file:
- '.env'
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- 80:80
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
volumes:
redis:
website:
sidekiq:
nginx-proxy:
Es läuft OKAY.
Aber ich habe PROBLEM
Docker-compose neue Netzwerkgruppen schaffen, Volumen, Bilder, Container nach bereitstellen wegen release_path
geändert.
Wie es zu beheben?
Vielen Dank für Ihre Informationen. Docker-compose kann Ihnen helfen, eine Dockerfile auszuführen und Container zu generieren. Docker und Capistrano haben unterschiedliche Zwecke. Wenn ich docker-compose konfigurieren kann, um den gleichen Container zu aktualisieren, wenn es in vielen Ordnern ausgeführt wird, wird es OKAY. – NamLe