DockerでLAMP環境作成 2021/06
Dockerを使ってLAMP環境の作成の復習(2021年6月)。参考にした資料はこちら
フォルダの構成
lamp(root)
/db
conf.d
my.cnf
/web
Dockerfile
docker-compose.yml
# docker-compose.yml version: "3.7" services: web: build: context: . dockerfile: ./web/Dockerfile ports: - 8000:80 volumes: - .:/var/www/html db: image: mysql:8.0.17 restart: always # command: --default-authentication-plugin=mysql_native_password #<-- db/conf.dに設定追加のため削除 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=sample - TZ='Asia/Tokyo' ports: - 3306:3306 # volumes - 追加 volumes: - ./docker/conf.d/my.cnf:/etc/mysql/conf.d/my.cnf - data:/var/lib/mysql adminer: image: adminer restart: always ports: - 8080:8080 # volumes - 追加 volumes: data:
# web/Dcokerfile FROM php:8-apache-buster # nodeとnpmのインストール RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - # Composerで必要なものとMysql、GD利用のパッケージ RUN apt-get update RUN apt-get install -y libxml2-dev libbz2-dev zlib1g-dev RUN apt-get install -y libsqlite3-dev libsqlite3-0 mariadb-client curl exif ftp RUN apt-get install -y libonig-dev RUN docker-php-ext-install intl RUN docker-php-ext-install mysqli pdo pdo_mysql RUN docker-php-ext-enable mysqli RUN docker-php-ext-enable pdo RUN docker-php-ext-enable pdo_mysql RUN apt-get install -y --fix-missing zip unzip RUN apt-get install -y --fix-missing git # Composerのインストール # RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer COPY --from=composer /usr/bin/composer /usr/bin/composer RUN composer self-update --2 RUN a2enmod rewrite EXPOSE 80
MySQL用の設定(my.cnf)
[mysqld] default_authentication_plugin=mysql_native_password
コンテナを作成して、Webコンテナを立ち上げ
docker-compose build web docker-compose up -d
試しにLaravelをインストール
docker-compose exec web composer create-project --prefer-dist laravel/laravel sample
localhost:8000/sample/publicへブラウザでアクセス
表示されました。
コンテナ内のDebianにComposerをインストールする方法は
1) RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
2) COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN composer self-update --2
1と2はどちらが正解なのだろう・・・?