tohokuaikiのチラシの裏

技術的ネタとか。

PHPのcomposer、built-inサーバ、メール確認用のmailpitのついたdocker compose

PHP書いてて、お問い合わせフォームとかのちょっとしたものを書きたい場合に使う。

.
├── docker
│   ├── app
│   │   ├── Dockerfile
│   │   └── public
│   │       └── index.php
│   └── compose.yaml
└── src
    └── public
        └── index.php
name: sample
services: 
  php: 
    container_name: sample_php
    build: 
      dockerfile: ./app/Dockerfile
      context: .
      tags: 
       - "php:8.3-cli"
    image: "php:8.3-cli"
    working_dir: /app
    volumes: 
      - type: bind
        source: ../src
        target: /app
    ports:
      - "8000:8000"
    command: php -S 0.0.0.0:8000 -t public
  mailpit:
    container_name: sample_mailpit
    image: axllent/mailpit
    ports:
      - "1025:1025"
      - "8025:8025"
# Dockerfile
FROM php:8.3-cli

# Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
echo json_encode([
    'access' => true,
]);