3

nginx と Ruby アプリケーションを使用して単純なリバース プロキシを設定しようとしていますが、Docker コンテナー内にも設定したいと考えています。

Docker 内部から Ruby アプリケーションを実行し、ホスト マシン (Boot2Docker を使用する私の Mac OS X) から実行中のサービスにアクセスできるようになりました。しかし、私は以前にそれを使用したことがなく、トピックに関する記事/チュートリアル/例の大部分が (単純な Sinatra/Rack アプリケーションではなく) Rails を使用しているようで、nginx 部分を実装しようとして立ち往生しています。ソケット - 私が知る限り、これは必要ありません。

また、Docker Compose を使用しています。

完全なディレクトリ構造は次のようになります。

├── docker-compose.yml
├── front-end
│   ├── Dockerfile
│   ├── Gemfile
│   ├── app.rb
│   ├── config.ru
├── proxy
│   ├── Dockerfile
│   ├── nginx.conf
│   └── public
│       ├── 500.html
│       ├── index.html

これらのファイルの内容を確認するには、次の要点を参照してください。

https://gist.github.com/Integralist/5cfd5c884b0f2c0c5d11

しかし、実行するdocker-compose up -dと次のエラーが発生します。

Creating clientcertauth_frontend_1...
Pulling image ./front-end:latest...
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 31, in main
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 445, in up
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.project", line 184, in up
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.service", line 259, in recreate_containers
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/compose.service", line 242, in create_container
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/docker.client", line 824, in pull
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/docker.auth.auth", line 67, in resolve_repository_name
  File "/Users/ben/fig/build/docker-compose/out00-PYZ.pyz/docker.auth.auth", line 46, in expand_registry_url
docker.errors.DockerException: HTTPS endpoint unresponsive and insecure mode isn't enabled.

このエラーの原因はわかりません (少しグーグルするとhttps://github.com/docker/compose/issues/563が返されますが、私が知る限り別の問題のようです)。

nginx.confまた、このエラーを回避できたとしても、が正しくセットアップされているかどうかも完全にはわかりません。nginx の構成は、リバース プロキシを適切に実行する必要があるように見えます (たとえばfrontend、アップストリーム アプリ サーバーとして使用すると、フロントエンド コンテナーの Docker IP アドレスに解決されるはず/etc/hostsです -> 2 つをリンクしたことがわかるように)そのため、フロントエンド アプリがプロキシ コンテナー内のエイリアスとして設定されることを期待します)。

私が欠けているかもしれないものを誰かが知っていますか?

ありがとう。

4

1 に答える 1

1

あなたの要点ではimage、キーの代わりにを使用しているbuildため、docker-compose はレジストリからイメージをプルしようとしていますが、失敗しています。

これらのイメージをローカルで作成しているため、docker-compose.ymlファイルの構文は次のようになります。

frontend:
  build: front-end/
  ports:
    - "8080:5000"
于 2015-05-05T00:32:21.480 に答える