Skip to content

Instantly share code, notes, and snippets.

@a-yasui
Last active March 5, 2025 10:09
Show Gist options
  • Save a-yasui/de3bc881fd2d83bfcb5e092521700fce to your computer and use it in GitHub Desktop.
Save a-yasui/de3bc881fd2d83bfcb5e092521700fce to your computer and use it in GitHub Desktop.
php/laravel and nodejs develop dockerfile
# PHP/Laravel + NodeJS
# same as : https://zenn.dev/at_yasu/scraps/1de9de2597fdb7
FROM node:23 as node
FROM composer:latest as composer
FROM php:8.3-apache
RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim \
libpq-dev \
libonig-dev \
libzip-dev \
libpng-dev \
libjpeg-dev \
libfreetype-dev \
libicu-dev \
libcurl4-openssl-dev \
imagemagick \
&& docker-php-ext-configure gd --with-jpeg \
&& docker-php-ext-install intl mbstring pdo_mysql bcmath gd curl zip \
&& pecl install xdebug \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 設定ファイルをdockerコンテナ内のPHP、Apacheに読み込ませる
ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/
# Composer Instaration
COPY --from=composer /usr/bin/composer /usr/bin/composer
# Npm Instaration
COPY --from=node /usr/local/include/node /usr/local/include/node
COPY --from=node /usr/local/bin/node /usr/local/bin/node
COPY --from=node /usr/local/lib /usr/local/lib
COPY --from=node /opt /opt
RUN ln -sf ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
&& ln -sf ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \
&& ln -sf /usr/local/bin/node /usr/local/bin/nodejs
## Yarn
RUN YARN_BIN_DIR=$(ls -d /opt/yarn-v*/bin | head -n1) && \
ln -sf ${YARN_BIN_DIR}/yarn /usr/local/bin/yarn && \
ln -sf ${YARN_BIN_DIR}/yarnpkg /usr/local/bin/yarnpkg
# Laravelで必要になるmodRewriteを有効化
RUN cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite
#コンテナ内に入った時のディレクトリを指定
WORKDIR /var/www
EXPOSE 80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment