LNMP docker-composer

首先PHP的dockerfile

FROM php:7.4-fpm

ENV DEPENDENCIES curl gnupg git wget gcc g++

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

ENV PHP_EXT_INSTALLED \
redis memcached

RUN DEBIAN_FRONTEND=noninteractive apt-get update -q \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y $DEPENDENCIES \
&& chmod +x /usr/local/bin/install-php-extensions && \
install-php-extensions opcache bcmath bz2 gd iconv mysqli pdo pdo_mysql zip sockets $PHP_EXT_INSTALLED
# update php.ini
RUN mv /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
# Install Composer.
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV PATH=$PATH:/root/composer/vendor/bin COMPOSER_ALLOW_SUPERUSER=1
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && \ 
    composer global require elasticsearch/elasticsearch

参考:
https://github.com/mlocati/docker-php-extension-installer
https://blog.csdn.net/qq_22823581/article/details/108710577

docker-compose.yml

version: "3.7"

services:
nginx:
image: nginx
volumes:
- /datafile:/usr/share/nginx/html
- ./nginx/conf/conf.d:/etc/nginx/conf.d
- ./nginx/log:/etc/log/nginx
ports:
- 80:80
environment:
- TZ=Asia/Shanghai  
links:
- php-fpm
container_name: hjd-nginx

php-fpm:
build: ./php-fpm/7.4
links:
- mysql
- redis
- elasticsearch
ports:
- 9000:9000
volumes:
- /datafile:/usr/share/nginx/html
- ./php-fpm/7.4/conf/php.ini:/usr/local/etc/php/php.ini
- ./php-fpm/7.4/log:/etc/log/php
container_name: hjd-php

mysql:
image: mysql:5.7
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
volumes:
- ./mysql/conf.d:/etc/mysql/conf.d
container_name: hjd-mysql

redis:
image: redis
ports:
- 6379:6379
volumes:
- ./redis/:/data
container_name: hjd-redis

elasticsearch:
image: elasticsearch:8.1.0
ports:
- 9200:9200
- 9300:9300
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
volumes:
- ./elasticsearch/data/:/usr/share/elasticsearch/data
container_name: hjd-es

目录结构

安装es报错?参考我上一偏文章

其中 Nginx,MySQL,PHP的配置文件需要先启动容器然后复制里面的配置文件到宿主机,这样才可以做到持久化。
复制 docker 命令如下:

docker cp a0:/usr/share/elasticsearch/config /root/docker/t4/elasticsearch/config
posted @ 2022-03-15 14:35  侯赢  阅读(63)  评论(0)    收藏  举报