Commit bdef23d2 authored by Kunkka王辉's avatar Kunkka王辉 😲

first commit

parents
.env
/.idea/
## galaxy-开发/测试环境 docker-compose
### 文件目录
### php扩展
| 名称 |
|:----------------|
| bcmath |
| Core |
| ctype |
| curl |
| date |
| dom |
| fileinfo |
| filter |
| gd |
| hash |
| iconv |
| imagick |
| imap |
| intl |
| json |
| libxml |
| mbstring |
| mongodb |
| mysqli |
| mysqlnd |
| openssl |
| pcntl |
| pcre |
| PDO |
| pdo_mysql |
| pdo_pgsql |
| Phar |
| posix |
| protobuf |
| rdkafka |
| readline |
| redis |
| Reflection |
| session |
| SimpleXML |
| sockets |
| SPL |
| standard |
| swoole |
| sysvmsg |
| sysvsem |
| sysvshm |
| tideways_xhprof |
| tidy |
| tokenizer |
| xlswriter |
| xml |
| xmlreader |
| xmlrpc |
| xmlwriter |
| xsl |
| Zend OPcache |
| zip |
| zlib |
## 命令执行,常驻supervisor,计划任务等处理
## 配置文件处理
## 安装与部署
- 新增一套测试环境
- 销毁一套测试环境
- 配置多个项目
- 执行php artisan
## 代码更新
version: "3.8"
services:
php7:
build:
context: src
dockerfile: Dockerfile-php
image: galaxy-php:7.4
container_name: php7.4
# environment:
#目录映射
expose:
- 9000
nginx:
build:
context: src
dockerfile: Dockerfile-nginx
args:
- ENV_HELLO
# 目录共享
# 指定目录映射
#
image: galaxy-nginx
container_name: nginx-test
expose:
- 80
ports:
- "8111:80"
command: ["nginx", "-g","daemon off;"]
\ No newline at end of file
FROM nginx:latest
## 初始化参数
ENTRYPOINT ["/docker-entrypoint.sh"]
RUN mkdir /etc/nginx/php
COPY <<EOF /etc/nginx/php/php7.4.conf
location ~ \.php$ {
fastcgi_pass php7.4:9000;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
}
EOF
COPY <<EOF /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /app/www;
index index.php index.html index.htm;
location / {
proxy_ignore_client_abort on;
fastcgi_ignore_client_abort on;
try_files \$uri \$uri/ /index.php?\$query_string;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
include /etc/nginx/php/php7.4.conf;
}
EOF
RUN cat /etc/nginx/conf.d/default.conf
EXPOSE 80
STOPSIGNAL SIGQUIT
FROM phpdockerio/php74-cli
# 安装所需的依赖,以及清理临时文件
COPY <<EOF /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
RUN apt-get update && \
apt-get -y install php7.4-common php7.4-mysql php7.4-pgsql php7.4-mysqlnd php7.4-gd php7.4-bcmath php7.4-soap php7.4-sqlite3 php7.4-redis php7.4-fpm php7.4-gd php7.4-bcmath php7.4-mongodb php7.4-tidy php7.4-protobuf \
php7.4-rdkafka php7.4-tideways php7.4-imap php7.4-imagick php7.4-swoole php7.4-xmlrpc php7.4-intl php-pear
RUN apt-get -y install php7.4-dev zlib1g-dev && \
curl -k https://pecl.php.net/get/xlswriter-1.5.5.tgz -L -o xlswriter-1.5.5.tgz && \
pecl install --offline xlswriter-1.5.5.tgz && rm -f xlswriter-1.5.5.tgz\
echo "extension=xlswriter.so" > /etc/php/7.4/mods-available/xlswriter.ini && ln -s /etc/php/7.4/mods-available/xlswriter.ini /etc/php/7.4/cli/conf.d/30-xlswriter.ini
RUN apt-get remove --purge -y php7.4-dev php-pear build-essential && apt-get autoremove -y && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ~/.composer # buildkit
## 修改sock监听为ip端口
RUN sed -i 's/^listen\s=.*sock/listen = 0.0.0.0:9000/g' /etc/php/7.4/fpm/pool.d/www.conf && \
cat /etc/php/7.4/fpm/pool.d/www.conf | grep -v ';' | grep -v -e '^$'
# 设置工作目录
WORKDIR /app
RUN mkdir /app/www
COPY <<EOF /app/www/index.php
<?php
phpinfo();
EOF
COPY check.sh /app/
# 检查扩展是否安装完整
RUN chmod +x /app/check.sh && /app/check.sh
# 指定容器启动时执行的命令
CMD ["/usr/sbin/php-fpm7.4","--nodaemonize", "-O"]
# 暴露9000端口
EXPOSE 9000
\ No newline at end of file
#/bin/bash
php -m | grep -q "bcmath" && echo "bcmath yes" || echo "bcmath no"
php -m | grep -q "Core" && echo "Core yes" || echo "Core no"
php -m | grep -q "ctype" && echo "ctype yes" || echo "ctype no"
php -m | grep -q "curl" && echo "curl yes" || echo "curl no"
php -m | grep -q "date" && echo "date yes" || echo "date no"
php -m | grep -q "dom" && echo "dom yes" || echo "dom no"
php -m | grep -q "fileinfo" && echo "fileinfo yes" || echo "fileinfo no"
php -m | grep -q "filter" && echo "filter yes" || echo "filter no"
php -m | grep -q "gd" && echo "gd yes" || echo "gd no"
php -m | grep -q "hash" && echo "hash yes" || echo "hash no"
php -m | grep -q "iconv" && echo "iconv yes" || echo "iconv no"
php -m | grep -q "imagick" && echo "imagick yes" || echo "imagick no"
php -m | grep -q "imap" && echo "imap yes" || echo "imap no"
php -m | grep -q "intl" && echo "intl yes" || echo "intl no"
php -m | grep -q "json" && echo "json yes" || echo "json no"
php -m | grep -q "libxml" && echo "libxml yes" || echo "libxml no"
php -m | grep -q "mbstring" && echo "mbstring yes" || echo "mbstring no"
php -m | grep -q "mongodb" && echo "mongodb yes" || echo "mongodb no"
php -m | grep -q "mysqli" && echo "mysqli yes" || echo "mysqli no"
php -m | grep -q "mysqlnd" && echo "mysqlnd yes" || echo "mysqlnd no"
php -m | grep -q "openssl" && echo "openssl yes" || echo "openssl no"
php -m | grep -q "pcntl" && echo "pcntl yes" || echo "pcntl no"
php -m | grep -q "pcre" && echo "pcre yes" || echo "pcre no"
php -m | grep -q "PDO" && echo "PDO yes" || echo "PDO no"
php -m | grep -q "pdo_mysql" && echo "pdo_mysql yes" || echo "pdo_mysql no"
php -m | grep -q "pdo_pgsql" && echo "pdo_pgsql yes" || echo "pdo_pgsql no"
php -m | grep -q "Phar" && echo "Phar yes" || echo "Phar no"
php -m | grep -q "posix" && echo "posix yes" || echo "posix no"
php -m | grep -q "protobuf" && echo "protobuf yes" || echo "protobuf no"
php -m | grep -q "rdkafka" && echo "rdkafka yes" || echo "rdkafka no"
php -m | grep -q "readline" && echo "readline yes" || echo "readline no"
php -m | grep -q "redis" && echo "redis yes" || echo "redis no"
php -m | grep -q "Reflection" && echo "Reflection yes" || echo "Reflection no"
php -m | grep -q "session" && echo "session yes" || echo "session no"
php -m | grep -q "SimpleXML" && echo "SimpleXML yes" || echo "SimpleXML no"
php -m | grep -q "sockets" && echo "sockets yes" || echo "sockets no"
php -m | grep -q "SPL" && echo "SPL yes" || echo "SPL no"
php -m | grep -q "standard" && echo "standard yes" || echo "standard no"
php -m | grep -q "swoole" && echo "swoole yes" || echo "swoole no"
php -m | grep -q "sysvmsg" && echo "sysvmsg yes" || echo "sysvmsg no"
php -m | grep -q "sysvsem" && echo "sysvsem yes" || echo "sysvsem no"
php -m | grep -q "sysvshm" && echo "sysvshm yes" || echo "sysvshm no"
php -m | grep -q "tideways_xhprof" && echo "tideways_xhprof yes" || echo "tideways_xhprof no"
php -m | grep -q "tidy" && echo "tidy yes" || echo "tidy no"
php -m | grep -q "tokenizer" && echo "tokenizer yes" || echo "tokenizer no"
php -m | grep -q "xlswriter" && echo "xlswriter yes" || echo "xlswriter no"
php -m | grep -q "xml" && echo "xml yes" || echo "xml no"
php -m | grep -q "xmlreader" && echo "xmlreader yes" || echo "xmlreader no"
php -m | grep -q "xmlrpc" && echo "xmlrpc yes" || echo "xmlrpc no"
php -m | grep -q "xmlwriter" && echo "xmlwriter yes" || echo "xmlwriter no"
php -m | grep -q "xsl" && echo "xsl yes" || echo "xsl no"
php -m | grep -q "Zend OPcache" && echo "Zend OPcache yes" || echo "Zend OPcache no"
php -m | grep -q "zip" && echo "zip yes" || echo "zip no"
php -m | grep -q "zlib" && echo "zlib yes" || echo "zlib no"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment