2016-03-21 3 views
0

nginx + mariadb + php + redisのドッカー - compose.ymlを書いてみたい
私はcompose-file、urlに関するドキュメントを読んでいます:https://docs.docker.com/compose/compose-file/#versioning
形式は、このようなものです:ドッカー:nginx + mariadb + php + redisのdocker-compose.ymlファイル

version: '2' 
services: 
    web: 
    build: . 
    ports: 
    - "5000:5000" 
    volumes: 
    - .:/code 
    networks: 
     - front-tier 
     - back-tier 
    redis: 
    image: redis 
    volumes: 
     - redis-data:/var/lib/redis 
    networks: 
     - back-tier 
volumes: 
    redis-data: 
    driver: local 
networks: 
    front-tier: 
    driver: bridge 
    back-tier: 
    driver: bridge 

しかし、私はnginxの+ mariadb + PHP + Redisののコン・ファイルを作成する方法を知らない、私は私が使用する、いくつかのexamples.Andを参照したいですDocker Hubの公式画像URL:https://hub.docker.com/explore/

** ps:**ソフトウェアバージョン:
OS:centos7.2
nginxの:最新
PHP:最新
mariadb:最新
のRedis:最新

答えて

1

私はこれらの線に沿って何かに行くだろう:

version: '2' 

services: 
    web: 
     container_name: my_app 
     build: . 
     links: 
     - redis 
     - mariadb 

    nginx: 
     container_name: nginx 
     image: nginx 
     links: 
     - my_app 
     ports: 
     - 80:80 
     - 443:443 

    redis: 
     container_name: redis 
     image: redis 

    mariadb: 
     container_name: mariadb 
     image: mariadb 

ので作成プロジェクトのドッカーファイルを作成し、readmeのようにファイルを追加して公式のPHPイメージを拡張します。

このdocker-compose.ymlはあなたのコンテナを起動し、それをnginxコンテナにリンクします。これは、my_appのホスト名で利用できることを意味し、独自のnginx設定を追加して、そのコンテナにリクエストを渡す必要があります。

Redis mariadbもドッカー作成で起動され、ホストコンテナ内のホスト名redismariadbで利用できるようになります。

Nginxは、ホスト上にポートが公開されている唯一のコンテナである必要があります。

上記のdockerファイルは完全な解決策ではありません。nginx設定を追加する必要があります。おそらくいくつかの環境変数をここに設定する必要があります。

こちらがお役に立てば幸いです。

+0

ありがとうございます。「7.0.4-cli」、「7.0.4-fpm」、「7.0.4-zts」です。どちらを選択すればよいですか?https://hub.docker.com/_/php/ – sunshine

+0

そして、php7イメージの使用ガイドでは、私のプロジェクトと 'php-cli'を含む新しいイメージを構築しますが、2つの別々のイメージを作るのは大丈夫ですか? – sunshine

+0

私が正しくあなたを理解していれば、あなたのプロジェクトイメージは 'php:7.0.4-apache'または' php:7.0.4-fpm'を拡張する必要があります。 apacheのあるものはそのまま使えますが、FPMではソケットからTCPに切り替える必要があります。 1つのイメージで十分であり、構築して展開するイメージになります。開発目的では、必要に応じて他のイメージを使用できますが、プロジェクトファイルをボリュームとしてマウントするだけです。 –