2016-10-24 21 views
0

@Moderators:タグのリストにタグを追加してください。実行中のnginxプロキシを使用してドッカーでTeampassを実行してください

Teampassをnginxをプロキシとして使用してドッカーコンテナとして実行したいとします。

私は、もしTeampassがそれ自身のApacheを持ってきて、自分のnginxに対してやっているかどうか、私が何か完全に間違っているかどうかはわかりません。

私は、MySQLのポートへの接続が機能していないため、問題は、それがこのページを渡していないこと、である。この enter image description here

のようにこれを入力してください。

nginxを実行しないでインストールしようとすると、すべて正常に動作します。私はnginxのを使用しているときしかし、それはもう

ドッキングウィンドウ・コンファイルを実行していないです:

teampass: 
container_name: teampass 
image: teampass/teampass 
ports: 
- 127.0.0.1:8787:80 
volumes: 
- /opt/teampass:/teampass 
links: 
- teampass_mysql 

teampass_mysql: 
restart: always 
image: mysql/mysql-server:5.5 
ports: 
- 127.0.0.1:13306:3306 
environment: 
- MYSQL_ROOT_PASSWORD=TEAMPASS_MYSQL_ROOT_PASSWORD 
- MYSQL_DATABASE=TEAMPASS_MYSQL_DATABASE 
- MYSQL_PASSWORD=TEAMPASS_MYSQL_PASSWORD 
- MYSQL_USER=TEAMPASS_MYSQL_USER 
volumes: 
- /opt/dbteampass:/var/lib/mysql 

nginxのファイル:

upstream teampass { 
    server 127.0.0.1:8787; 
} 

upstream sqlteampass { 
    server 127.0.0.1:13306; 
} 

server { 
    listen 80; 
    server_tokens off; 
    server_name teampass.domain.tld; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_tokens off; 
    server_name teampass.domain.tld; 

    ssl_certificate /path/fullchain.pem; 
    ssl_certificate_key /path/privkey.pem; 

    location/{ 
    proxy_set_header  Host $host:$server_port; 
    proxy_set_header  X-Real-IP $remote_addr; 
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header  X-Forwarded-Proto $scheme; 
    proxy_pass    http://teampass; 
    } 
} 



server { 
    listen 80; 
    server_tokens off; 
    server_name sql.teampass.domain.tld; 
    return 301 https://$host$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_tokens off; 
    server_name sql.teampass.domain.tld; 

    ssl_certificate /path/fullchain.pem; 
    ssl_certificate_key /path/privkey.pem; 

    location/{ 
    proxy_set_header  Host $host:$server_port; 
    proxy_set_header  X-Real-IP $remote_addr; 
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header  X-Forwarded-Proto $scheme; 
    proxy_pass    http://sqlteampass; 
    } 
} 
+0

なぜcomposeファイルの 'localhost'にバインドしますか?あなたはポートを指定しようとしましたか? – jottr

+0

https://github.com/jcherqui/docker-teampassをご覧ください。 これが機能したら、リバースプロキシをミックスに追加することができます。コンテナ用に最適化されたリバースプロキシがある、traefikをチェックアウト :https://traefik.io – jottr

答えて

1

まずあなたが正常に動作し、あなたのコンテナ間のネットワーキング得ることを確認します。

私は今のボリュームディレクティブを残していることに注意し、必要最小限のコンファイルで始まるのをしてみましょう:あなたは、古いを取り除くことを確認してください、あなたはまだ古いteampassコンテナを実行している場合

# docker-compose.yml 

version: '2' 
services: 
    teampass: 
     image: teampass/teampass 
     ports: 
     - "80:80" 
     links: 
      - db 
    db: 
     image: mysql:latest 
     ports: 
      - "3306:3306" 
     environment: 
      - MYSQL_DATABASE=teampass 
      - MYSQL_PASSWORD=pass 
      - MYSQL_ROOT_PASSWORD=rootpass 
      - MYSQL_USER=user 

経由で容器docker-compose rm -v

今、あなたはデシベルとteampassコンテナが実行されて表示されたら、あなたはドッキングウィンドウコンテナがお互いを見ることができることを検証することができ、docker-compose up、実行します。

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES 
263d801cdf85  teampass/teampass "/bin/sh -c /start.sh" 14 minutes ago  Up 14 minutes  0.0.0.0:80->80/tcp  dockerteampass_teampass_1 
fcb750fffd4f  mysql:latest  "docker-entrypoint.sh" 14 minutes ago  Up 14 minutes  0.0.0.0:3306->3306/tcp dockerteampass_db_1 

注実行中のteampassコンテナの名前ダウン。

$ docker exec -it dockerteampass_teampass_1 bash 

これであなたはteampassコンテナの中にいます。 dbコンテナにpingを実行するには、単純に実行してください。

$ ping db 

これはタイムアウトではありません。

ブラウザにアクセスして設定を開始し、dbをホストとして入力してください。

上記のエラーを取り除くはずです。 この作業が完了したら、nginxを使用してリバースプロキシを試すことができます。

enter image description here

ドッキングウィンドウのネットワークの詳細を表示するにdocumentationを参照してください。

+0

ahhhhhhhh問題は、ホスト名だった...それはええ....ドッキングウィンドウコンテナ名でなければなりません。どうもありがとう!! – Joerg

関連する問題