我在 DigitalOcean 中的512MB 液滴上安装了14.04(带 Docker 1.2.0)的 Dokku v0.2.3的新映像。为了避免内存问题,我像往常一样创建了一个交换文件。
我部署了两个应用程序进行测试,一个在子域上,另一个在自定义域上,它们运行良好。
那只是一个测试服务器,只是为了看看它是如何工作的,它是否工作以及总体上看我是否可以让它工作。
所以。接下来的事情是销毁那个 droplet 并创建一个新的来在那里部署一些应用程序。就像第一次一切正常一样,我已经在本文中完成了这些步骤。
基本上:
SSH 密钥生成(这显然工作正常)
访问服务器 (http://) 以进行 dokku 的设置(这里我激活了使用虚拟主机命名应用程序)
更新 dokku 部署步骤
cd ~/dokku git pull origin master make install
安装 dokku postgresql 插件
cd /var/lib/dokku/plugins git clone https://github.com/Kloadut/dokku-pg-plugin postgresql dokku plugins-install
将 Rails 测试应用程序推送到服务器这是输出:
git push dokku master Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (6/6), 491 bytes | 0 bytes/s, done. Total 6 (delta 2), reused 3 (delta 0) -----> Cleaning up ... -----> Building rails-sample ... Ruby app detected -----> Compiling Ruby/Rails -----> Using Ruby version: ruby-2.1.2 -----> Installing dependencies using 1.6.3 Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 -- deployment Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Using rake 10.1.1 Using i18n 0.6.9 Using minitest 4.7.5 Using multi_json 1.8.4 Using tzinfo 0.3.38 Using builder 3.1.4 Using erubis 2.7.0 Using atomic 1.1.15 Using rack 1.5.2 Using polyglot 0.3.4 Using activerecord-deprecated_finders 1.0.3 Using arel 4.0.2 Using coffee-script-source 1.7.0 Using mime-types 1.25.1 Using execjs 2.0.2 Using hike 1.2.3 Using thor 0.18.1 Using kgio 2.9.2 Using json 1.8.1 Using tilt 1.4.1 Using bundler 1.6.3 Using pg 0.17.1 Using raindrops 0.13.0 Using rails_serve_static_assets 0.0.2 Using rails_stdout_logging 0.0.3 Using sass 3.2.14 Using thread_safe 0.2.0 Using rack-test 0.6.2 Using treetop 1.4.15 Using coffee-script 2.2.0 Using sprockets 2.11.0 Using uglifier 2.4.0 Using rails_12factor 0.0.2 Using unicorn 4.8.2 Using rdoc 4.1.1 Using activesupport 4.0.3 Using sdoc 0.4.0 Using mail 2.5.4 Using actionpack 4.0.3 Using activemodel 4.0.3 Using jbuilder 1.5.3 Using actionmailer 4.0.3 Using railties 4.0.3 Using coffee-rails 4.0.1 Using sprockets-rails 2.0.1 Using jquery-rails 3.1.0 Using turbolinks 2.2.1 Using activerecord 4.0.3 Using sass-rails 4.0.1 Using rails 4.0.3 Your bundle is complete! Gems in the groups development and test were not installed. It was installed into ./vendor/bundle Bundle completed (1.64s) Cleaning up the bundler cache. -----> Writing config/database.yml to read from DATABASE_URL -----> Preparing app for Rails asset pipeline Running: rake assets:precompile Asset precompilation completed (2.47s) Cleaning assets Running: rake assets:clean -----> Discovering process types Procfile declares types -> web Default process types for Ruby -> rake, console, web, worker -----> Releasing rails-sample ... -----> Deploying rails-sample ... -----> Checking status of PostgreSQL Found image postgresql/rails-sample database Checking status... ok. -----> Running pre-flight checks check-deploy: /home/dokku/rails-sample/CHECKS not found. attempting to retrieve it from container ... CHECKS file not found in container. skipping checks. -----> Running post-deploy -----> Creating non-ssl nginx.conf -----> Running nginx-pre-reload Reloading nginx -----> Shutting down old container in 60 seconds =====> Application deployed: http://rails-sample.domain.com
最后回到服务器,创建数据库并运行 rake 迁移
dokku postgresql:create rails-sample docker run -i -t dokku/rails-sample /bin/bash export HOME=/app for file in /app/.profile.d/*; 做源 $file; 完成哈希 -r cd /app RAILS_ENV=production rake db:migrate
现在网络我访问 rails-sample.domain.com 它只是没有做任何事情。在 Chrome 上我得到ERR_CONNECTION_REFUSED
错误。
该域很好地解析为服务器的 IP 地址。甚至还有一个带有通配符的 A 记录指向服务器。
在谷歌上没有看到这种错误。甚至有线索在哪里查看可能出现的问题。Dokku 日志几乎是空的。只有起始日志部分:
INFO -- : Refreshing Gem list
INFO -- : listening on addr=0.0.0.0:5000 fd=9
INFO -- : master process ready
INFO -- : worker=0 ready
INFO -- : worker=1 ready
INFO -- : worker=2 ready
所以很明显,从来没有访问过该应用程序。
docker ps
输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce2d9d46f769 dokku/rails-sample:latest "/bin/bash -c '/star About an hour ago Up About an hour 0.0.0.0:49156->5000/tcp dreamy_curie
89a111191b6a postgresql/rails-sample:latest "/usr/bin/start_pgsq About an hour ago Up About an hour 0.0.0.0:49154->5432/tcp focused_mayer
我在哪里可以看看它有什么问题?我已经完成了大约五次创建过程(在新液滴上)并且总是出现相同的错误,但我无法弄清楚出了什么问题。更令人沮丧的是,因为第一次效果很好。
谢谢。
更新 当我访问 domain.com:49158 应用程序似乎工作正常。
更新二 所以域配置似乎很好。它也与子域一起运行,但只要在其后指定端口即可。似乎端口 80拒绝连接。但不知道如何。nginx 配置文件似乎一切正常(ips/ports/hostnames/etc)