前提・実現したいこと
PostgreSQLのサービスをdocker-composeを利用して立ち上げます。
その上で、別のdocker-composeで立ち上げたWebアプリ(Ruby on Rails)から前記PostgreSQLを利用したいのですが、どのようにdocker-compose.ymlを書けばよいでしょうか?
発生している問題・エラーメッセージ
Creating my_db ... error ERROR: for my_db Cannot create container for service db: Conflict. The container name "/my_db" is already in use by container "a9...". You have to remove (or rename) that container to be able to reuse that name. ERROR: for db Cannot create container for service db: Conflict. The container name "/my_db" is already in use by container "98...". You have to remove (or rename) that container to be able to reuse that name. ERROR: Encountered errors while bringing up the project.
該当のソースコード
DB
1services: 2 db: 3 image: postgres:alpine 4 container_name: my_db 5 ports: 6 - 5432:5432 7 environment: 8 - TZ=Asia/Tokyo 9 - POSTGRES_USER=myuser 10 - POSTGRES_PASSWORD=mypass 11 networks: 12 mynet: 13 ipv4_address: 192.168.10.1 14 15networks: 16 mynet: 17 name: mynet 18 driver: bridge 19 ipam: 20 driver: default 21 config: 22 - subnet: 192.168.10.0/24
Web
1version: "3.5" 2 3services: 4 db: 5 image: postgres:alpine 6 container_name: my_db 7 external_links: 8 - db 9# ports: 10# - 5432:5432 11# environment: 12# - TZ=Asia/Tokyo 13# - POSTGRES_USER=myuser 14# - POSTGRES_PASSWORD=mypass 15# networks: 16# mynet: 17# ipv4_address: 192.168.10.1 18 19 web: 20 image: one 21 container_name: one 22 build: 23 context: ./ 24 dockerfile: Dockerfile 25 volumes: 26 - .:/home 27 command: /bin/sh 28 ports: 29 - 3000:3000 30 links: 31 - db 32 environment: 33 - DATABASE_HOST=db 34 - DATABASE_PORT=5432 35 - DATABASE_USER=seeeye 36 - DATABASE_PASSWORD=seeeye 37 networks: 38 - mynet 39 tty: true 40 41networks: 42 mynet: 43 external: true
DBのdocker-compose.ymlでは、ネットワークの設定とPostgreSQLのコンテナを立ち上げています。
Webのdocker-ompose.ymlでは、すでに立ち上がっているネットワークとDBコンテナを利用するつもりで、書きました。
試したこと
一つのdocker-compose.ymlではできていてエラーにはなりませんでした。訳あって二つのdocker-compose.ymlに分離したいのです。(ゆくゆくは他の独立したコンテナからDBを利用しようとしてます)
問題のないyml
dockercompose
1version: "3.5" 2 3services: 4 db: 5 image: postgres:alpine 6 container_name: my_db 7 ports: 8 - 5432:5432 9 environment: 10 - TZ=Asia/Tokyo 11 - POSTGRES_USER=myuser 12 - POSTGRES_PASSWORD=mypass 13 14 web: 15 image: one 16 container_name: one 17 build: 18 context: ./ 19 dockerfile: Dockerfile 20 command: /bin/sh 21 ports: 22 - 3000:3000 23 depends_on: 24 - db 25 links: 26 - db 27 environment: 28 - DATABASE_HOST=db 29 - DATABASE_PORT=5432 30 - DATABASE_USER=myuser 31 - DATABASE_PASSWORD=mypass 32 tty: true
補足情報(FW/ツールのバージョンなど)
docker-compose version 1.25.2, build 698e2846
Docker version 19.03.5, build 633a0ea
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。