0

私はMysqlデータベース上で走っている私の既存のRailsアプリケーションをドッキングしてしまった。しかし、同じコンテナにテストデータベースを作成するためにdocker-composeをセットアップすることは可能でしょうか?私は何とか環境の部分でよりdarabaseを追加することができます。ここドッキングされたRailsアプリケーションでMysqlテストデータベースを作成するには?

は私のドッキングウィンドウ-compose.ymlあり、それは

version: '2' 

volumes: 
    db-data: 

services: 
    db: 
    image: mysql:5.5 
    restart: always 
    ports: 
    - "3307:3306" 
    environment: 
    MYSQL_ROOT_PASSWORD: verysecret 
    MYSQL_USER: appdb 
    MYSQL_PASSWORD: secret 
    MYSQL_DATABASE: appdb 
    volumes: 
    - db-data:/var/lib/mysql 

    web: 
    build: . 
    command: bundle exec rails s -p 3000 
    volumes: 
    - .:/app 
    ports: 
    - "3000:3000" 
    links: 
    - db 
    depends_on: 
    - db 

を開発するためのmysqlで罰金wirks?

答えて

0

dockerの作成でMysqlコンテナごとに1つのDBのみを作成できます。あなたの場合は、2番目のデータベース用の2番目のDBコンテナを作成する必要があると思います(「実際の」DBから分離されています)。 2つのデータベースを同じコンテナに入れたい場合は、Mysqlイメージに基づいてDockerファイルを作成し、コマンドライン(RUN)を追加して2番目のDBを作成する必要があります。

HTH

0

はい、可能ですが、必ずしも単一のコンテナではなく、コンテナを連結するマネージャです。これが問題なければ、プロジェクトの設定に役立ついくつかのステップを追加しました。 ない場合、私はあなたがあなたのプロジェクトのソースディレクトリにdocker-compose.ymlファイルを作成することから始めたいと思うドッキングウィンドウ-コンファイルから

を単一のイメージを実行する方法を追加しました。

次に、あなたがあなたのYMLファイル内でこのような何かを追加することをお勧めします。(これは、ドッカーのクイックスタートのドキュメントから取られました。代わりにpostgresののMySQLを表示するように変更された)

version: '3' 
services: 
    db: 
    image: mysql 
    web: 
    build: . 
    command: bundle exec rails s -p 3306 -b '0.0.0.0' 

volumes: 
    - .:/myapp 
ports: 
    - "3000:3000" 
depends_on: 
    - db 

詳細、彼らが作成方法について1つはここに見つけることができる: https://docs.docker.com/compose/rails/#define-the-project。注意すべき

もの:

  • webは、レールのコンテナについての詳細です。したがって、すでにレールイメージを作成している場合は、imageプロパティを追加する必要があります。
  • また、build: .は、あなたのDockerfileがプロジェクトと同じ場所にあることを期待しています。したがって、このdocker-compose.ymlを別の場所に作成する場合は、パスを指定する必要があります。続い docker-compose build :コンテナを分離する場合 docker-compose up

    、ものではありません

  • depends_onは、あなたのアプリがレールに

あなたはdocker-compose.ymlファイルの実行の作成が完了したらを実行する前にDBを構築することができますあなたが探しているのは、両方のアプリケーションを実行する単一のイメージを作成することです。次に、ドッカーの作成から実行するために、このようなものを使用します。

version: '3' 
services: 
    app: 
    image: {your-app-image} 
    build: . 
volumes: 
    - .:/myapp 
ports: 
    - "3000:3000" 
    - "3306:3306" 

注:画像はDockerfileからの作成方法によって異なる場合があります。

+0

おかげで、それはすでに私のドッキングウィンドウとドッキングウィンドウ・コンで動作述べたように。質問は、同じコンテナ – Jepzen

+0

Npのデータベースobに作成するように構成できるかどうかです。私はあなたがその問題を解決する方法を参照しました。 1つのコンテナ内にアプリ全体を作成しようとしている場合は、Dockerファイルに複数のレイヤーを追加して、MySQLアプリケーションと依存関係を追加して、追加のポートを公開してみてください。ドッカーからのコンテナを直接合成できるかどうかはわかりません。たぶん誰かがそれに答えて、私たちに両方を教えることができます。 –

関連する問題