CentOSをベースにLAMP環境を構築したい
やりたいこと
複数のコンテナを構築してLAMP環境を構築するのではなく、CentOSをベースに下記のソフトウェアたちをインストールして、イメージ化したいです。
- httpd
- which
- php74
- php74-php
- php74-php-cli
- php74-php-common
- php74-php-devel
- php74-php-fpm
- php74-php-gd
- php74-php-mysqlnd
- php74-php-mbstring
- php74-php-pdo
- php74-php-xml
- php74-php-pecl-zip
- mysql-community-server
- nodejs
- composer
- phpmyadmin
- laravel
ボーダーより上のソフトウェアをインストールしたイメージの作成は出来ましたが、ボーダーより下のソフトウェアをもインストールされた状態のイメージを作成したいです。
試したコード
Dockerfile
1# Dockerイメージの指定 2FROM centos:centos7 3 4# 作成者情報 5MAINTAINER root 6 7# OS上で実行するコマンド 8# アップデート 9RUN yum -y update 10 11# レポジトリの追加 12RUN yum install -y epel-release http://rpms.famillecollet.com/enterprise/remi-release-7.rpm centos-release-scl http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 13 14# LAMP環境構築に必要なパッケージをインストール 15RUN yum install -y httpd which php74 php74-php php74-php-cli php74-php-common php74-php-devel php74-php-fpm php74-php-gd php74-php-mysqlnd php74-php-mbstring php74-php-pdo php74-php-xml php74-php-pecl-zip --enablerepo=mysql80-community mysql-community-server nodejs 16 17# apachを起動、コンテナ起動時Apache自動起動指定 18CMD systemctl start httpd && systemctl enable httpd && systemctl restart httpd 19 20# デフォルトPHP 21CMD module load php74 22 23# install composer 24CMD php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && php composer-setup.php && php -r "unlink('composer-setup.php');" 25CMD mv composer.phar /usr/bin/composer 26CMD composer global require "laravel/installer" 27CMD laravel new /var/www/html/laravel && npm install && npm run dev 28CMD systemctl restart httpd 29CMD chown -R apache:apache /var/www/html/sample/storage 30 31EXPOSE 8080:80 32CMD ["deamon off;"] 33
自分が理解している範囲
DockerfileはMakefile同様、ビルドするための指示書みたいな役割であることまでは理解しています。
DockerfileのみでLaravelまでインストールすることは不可能か否や、そして、もしできるのであれば、CMDの書き方を教えていただきたいです。また、仮にMySQL8をインストールした場合、SQL8ではmysql_native_passwordをつけておかないと、デフォルトの「caching_sha2_password」が設定され、phpmyadminがインストールできないことは知っているのですが、これをもDockerfileのみで設定することも可能なのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。