0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker初めて使ってみた

Posted at

Dockerに触る

今までローカル開発環境(Xampp)でPHPの学習をしていたのですが、友人と一緒にWEBアプリを作ろうという話になり、Dockerで環境構築することに決めました。

...と数カ月前に思い立ったものの、結局資格勉強やら遊びやらYouTubeのショート見漁ったりで全然やっていませんでした。(我ながらカスですね)
Docker Desktopのインストールまでは終わったものの、WLS2もmysqlもPHPもインストールしてませんでした。

なので本日行った作業は、大きく分けて下記のようになります。

項番 ページ内リンク
1 プロジェクト構成の準備
2 Dockerfileの作成(PHP拡張機能)
3 実装 docker-compose.ymlの構成
4 DBに接続できるか試す

プロジェクト構成の準備

app-create/
└── 作成予定のアプリ名/
    ├── docker-compose.yml
    ├── Dockerfile
    ├── init.sql
    └── src/
        └── index.php
            db-test.php

src/にPHPファイルを置く構成に決めました。

Dockerfileの作成(PHP拡張機能)

Dockerfile
FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql

PHPのバージョンと、DBに接続するための拡張機能「pdo_mysql」を追加しました。

docker-compose.ymlの構成

docker-compose.yml
version: '3.8'

services:
  web:
    build: .
    container_name: ***
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:latest
    container_name: ***
    environment:
      MYSQL_ROOT_PASSWORD: ***
      MYSQL_DATABASE: ***
      MYSQL_USER: ***
      MYSQL_PASSWORD: ***
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: ***
    ports:
      - "8081:80"
    environment:
      PMA_HOST: ***
      PMA_USER: ***
      PMA_PASSWORD: ***
    depends_on:
      - db

volumes:
  db_data: {}

DBに接続できるか試す

db-test.php
<?php
try {
    $pdo = new PDO("mysql:host=okinawa-db;dbname=okinawa_spots", "s_user", "s_pass");
    echo "PDOでMySQLに接続成功!";
} catch (PDOException $e) {
    echo "接続失敗: " . $e->getMessage();
}
?>

DBに無事接続できました。

まとめ

うん、ガチの底辺エンジニアとしてはこんなものですかね。
ここから先も色々やっている(というか記載していること以外の作業のほうが多い)のですが、書くの疲れたんでここら辺で終わります。
全然参考にならない&普通に本やYouTube見ながら環境構築したほうが確実なので皆さんマネしないでね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?