前提・実現したいこと
Laravelの環境をDockerで構築する、ということを試みているものです。
その際、こちらのリポジトリからフォルダを引っ張ってきたのですが、docker-compose.ymlに書いてある記述で不明な点があるので質問させていただきました。
services下にappとwebがあると思うのですが、どういう違いがあるのかがわかりません。
.envファイルにもポート番号が別々に定義されており、それがdocker-compose.ymlでも使用されています。
app, web, db, node...など、それぞれがイメージ(サービス)単位で分けられているのことはわかるのですが、具体的にappとwebはどう違うのでしょうか。
該当のソースコード
yml
1version: "3" 2services: 3 app: 4 build: 5 context: ./docker/php 6 args: 7 - TZ=${TZ:-Asia/Tokyo} 8 ports: 9 - ${APP_PORT:-18000}:8000 10 volumes: 11 - ${PROJECT_PATH:-./src}:/work 12 - ./docker/ash:/etc/profile.d 13 - ./docker/php/psysh:/root/.config/psysh 14 - ./logs:/var/log/php 15 - ./docker/php/php.ini:/usr/local/etc/php/php.ini 16 working_dir: /work 17 environment: 18 - DB_CONNECTION=mysql 19 - DB_HOST=db 20 - DB_DATABASE=${DB_NAME:-homestead} 21 - DB_USERNAME=${DB_USER:-homestead} 22 - DB_PASSWORD=${DB_PASS:-secret} 23 - TZ=${TZ:-Asia/Tokyo} 24 - MAIL_HOST=${MAIL_HOST:-mail} 25 - MAIL_PORT=${MAIL_PORT:-1025} 26 - CACHE_DRIVER=redis 27 - SESSION_DRIVER=redis 28 - QUEUE_DRIVER=redis 29 - REDIS_HOST=redis 30 31 web: 32 image: nginx:1.17-alpine 33 depends_on: 34 - app 35 ports: 36 - ${WEB_PORT:-10080}:80 37 volumes: 38 - ${PROJECT_PATH:-./src}:/work 39 - ./logs:/var/log/nginx 40 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 41 environment: 42 - TZ=${TZ:-Asia/Tokyo} 43 44 db: 45 image: mysql:8.0 46 volumes: 47 - db-store:/var/lib/mysql 48 - ./logs:/var/log/mysql 49 - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf 50 environment: 51 - MYSQL_DATABASE=${DB_NAME:-homestead} 52 - MYSQL_USER=${DB_USER:-homestead} 53 - MYSQL_PASSWORD=${DB_PASS:-secret} 54 - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} 55 - TZ=${TZ:-Asia/Tokyo} 56 ports: 57 - ${DB_PORT:-13306}:3306 58 59 db-testing: 60 image: mysql:8.0 61 volumes: 62 - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf 63 tmpfs: 64 - /var/lib/mysql 65 - /var/log/mysql 66 environment: 67 - MYSQL_DATABASE=${DB_NAME:-homestead} 68 - MYSQL_USER=${DB_USER:-homestead} 69 - MYSQL_PASSWORD=${DB_PASS:-secret} 70 - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} 71 - TZ=${TZ:-Asia/Tokyo} 72 ports: 73 - ${DB_TESTING_PORT:-13307}:3306 74 75 node: 76 image: node:12.14-alpine 77 tty: true 78 volumes: 79 - ${PROJECT_PATH:-./src}:/work 80 working_dir: /work 81 82 redis: 83 image: redis:5.0-alpine 84 volumes: 85 - redis-store:/data 86 87 mail: 88 image: mailhog/mailhog 89 ports: 90 - ${MAILHOG_PORT:-18025}:8025 91 92volumes: 93 db-store: 94 redis-store:
試したこと
「docker-compose app web」、「docker-compose サービス名 違い」など、いろいろ検索してみましたが、具体的な説明はなかったと思います...。
お手数お掛け致しますが、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。