2024_Hello_World
@2024_Hello_World

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【初心者】docker composeでIPやポ-トを指定したい

Q&A

Closed

解決したいこと

以下の条件でdocker composeを使いLaravelのプロジェクト環境を作成したのですがWebにアクセスできません。

IPアドレス 127.0.0.2
ポート番号 89
DBポート番号 3039
phpmyadminポート8089

①IPやポートの設定の仕方がおかしいのでしょうか?
②そもそも環境情報はローカルのパソコンで開発している場合は変更できないのでしょうか?
解決方法を教えてください。

試したこと

①docker-compose up -dのコマンドにてプロジェクト作成。
②composerをインストール済み
③アクセスできませんと表示されます。←今ここで止まっています

スクリーンショット 2024-03-14 145617.png

該当するソースコード

.env
# Docker環境ファイル
# プロジェクト名
COMPOSE_PROJECT_NAME=laravel9

# 各名称(prefix)
NAME_PREFIX=laravel9

# 
IP=127.0.0.9
PORT_WEB=89
PORT_DB=3309
PORT_PHPMYADMIN=8089

# DB情報
DB_HOST_NAME=laravel9-db-host
DB_ROOT_PASSWORD=root
docker-compose.yml
version: "3.1"

services:
  web:
    container_name: "${NAME_PREFIX}-web"
    hostname: "${NAME_PREFIX}-web"
    build:
      context: "./docker/php"
    ports:
      - "${IP}:${PORT_WEB}:80"
    volumes:
      - "./root:/var/www/root"
      - "./root/vendor:/var/www/root/vendor:delegated"
      - "./root/storage:/var/www/root/storage:delegated"
      - "web_data_volume:/var/www/root/bootstrap/cache"
      - "web_data_volume:/var/www/root/storage/debugbar"
      - "web_data_volume:/var/www/root/storage/framework/sessions"
      - "web_data_volume:/var/www/root/storage/framework/views"
    environment:
      - "TZ=Asia/Tokyo"
    working_dir: /var/www/root
    restart: always
  db:
    platform: linux/x86_64 
    container_name: "${NAME_PREFIX}-mysql"
    hostname: ${DB_HOST_NAME}
    image: mysql:8.0.31
    ports:
      - "${IP}:${PORT_DB}:3306"
    volumes:
        - "mysql_data_volume:/var/lib/mysql" 
        - "./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf"
        - "./docker/db/sql:/docker-entrypoint-initdb.d"
    environment:
      - "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}"
      - "TZ=Asia/Tokyo"
    restart: always
  phpmyadmin:
    container_name: "${NAME_PREFIX}-phpmyadmin"
    hostname: "${NAME_PREFIX}-phpmyadmin"
    image: phpmyadmin:5.2.0
    ports:
      - "${IP}:${PORT_PHPMYADMIN}:80"
    environment:
      - "PMA_HOST=${DB_HOST_NAME}" 
      - "PMA_USER=root"
      - "PMA_PASSWORD=${DB_ROOT_PASSWORD}" 
      - "TZ=Asia/Tokyo"
    restart: always
volumes:
  web_data_volume:
    name: "${NAME_PREFIX}-web-volume"
  mysql_data_volume:
    name: "${NAME_PREFIX}-mysql-volume"

0

1Answer

  1. 127.0.0.1 であればアクセスできますか?
  2. webコンテナは 80/tcp で listenしていますか?
$ docker exec laravel9-web netstat -an
や
$ docker exec laravel9-web ss -lnt
もしくは
$ docker exec laravel9-web curl localhost
など。
いずれのコマンドも入っていなければインストールしないと確認できません。

あるいは webコンテナが起動できているか。ログに何か出ているかもしれません。

$ docker logs laravel9-web

「パソコン」ということですが環境によっては 127.0.0.2 ではアクセスできないケースもあるのでどういう環境かも書いた方が回答が集まりやすいと思います。

0Like

Your answer might help someone💌