เริ่มต้นด้วย สร้างไฟล์ Dockerfile
#nano Dockerfile
จะเข้าหน้าของ Dockerfile
FROM php:5.6.32-apache-jessie
RUN apt-get update
RUN apt-get install -y g++
RUN apt-get install -y libpng-dev libmcrypt-dev libxml2-dev libtidy-dev# xcache
RUN curl -fsSL ‘https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz’ -o xcache.tar.gz \
&& mkdir -p /tmp/xcache \
&& tar -xf xcache.tar.gz -C /tmp/xcache –strip-components=1 \
&& rm xcache.tar.gz \
&& docker-php-ext-configure /tmp/xcache –enable-xcache \
&& docker-php-ext-install /tmp/xcache \
&& rm -r /tmp/xcache# install php mysql extension
RUN docker-php-ext-install mysql
RUN docker-php-ext-install pdo
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install bcmath
RUN docker-php-ext-install gd
RUN docker-php-ext-install mcrypt
RUN docker-php-ext-install soap
RUN docker-php-ext-install tidy
RUN docker-php-ext-install xml
RUN docker-php-ext-install xmlrpc# config php.ini
COPY php.ini /usr/local/etc/php/php.ini
RUN sed -i ‘s/;date\.timezone.*/date.timezone = ASIA\/Bangkok/g’ /usr/local/etc/php/php.ini
RUN sed -i ‘s/;upload_max_filesize.*/upload_max_filesize = 15M/g’ /usr/local/etc/php/php.ini
RUN sed -i ‘s/;post_max_size.*/post_max_size = 15M/g’ /usr/local/etc/php/php.ini
RUN sed -i ‘s/;short_open_tag.*/short_open_tag = On/g’ /usr/local/etc/php/php.ini
RUN sed -i ‘s/;display_errors.*/display_errors = Off/g’ /usr/local/etc/php/php.ini
#RUN a2enmod rewrite# install zip archive extension
RUN docker-php-ext-install zip
RUN docker-php-ext-install calendar
หลังจากพิมพ์เสร็จแล้วกด Ctrl+X เพื่อออกจาก Dockerfile
ต่อมาสร้าง php.ini
#nano php.ini
จะเข้าหน้าของ php.ini
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
หลังจากพิมพ์เสร็จแล้วกด Ctrl+X เพื่อออกจาก php.ini
หลังจากนั้นก็ทำการ build images docker build -t image-name. ก็รอสักครู่
#docker build -t image-name.
แต่อย่าลืมสร้าง network ให้ docker นะครับ วิธิสร้างไปอ่าน ที่ https://www.bunyiam.com/network-%e0%b9%83%e0%b8%99-docker/
ต่อมาสร้าง docker-compose.yml
version: ‘3.3’
services:
web:
image: php:5.6.32-apache-jessie
restart: always
volumes:
– ./www/:/var/www/html/
– /etc/localtime:/etc/localtime:ro
ports:
– 8002:80networks:
default:
external:
name: docker-networks
หลังจากพิมพ์เสร็จแล้วกด Ctrl+X เพื่อออกจาก docker-compose.yml
จากนั้นทำการ docker-compose up -d
ดูสถานะการทำงาน ใช้คำสั่ง
#docker ps -a