摘要:構(gòu)建配置其它代碼啟動啟動后,用數(shù)據(jù)連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環(huán)境已經(jīng)做好了。
普通PC環(huán)境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。
Docker 安裝$ curl -sSL get.docker.com | sudo sh工作目錄
/lnmp/conf 存放虛擬主機配置
/lnmp/data/mysql 存放mysql數(shù)據(jù)庫數(shù)據(jù)
/lnmp/log 存放nginx、mysql日志
/lnmp/workspace 存放各種項目文件
/lnmp/.env 啟動docker時的環(huán)境變量配置
/lnmp/docker-compose.yml 構(gòu)建時的配置文件
/lnmp/php/Dockerfile 編譯PHP配置文件
先創(chuàng)建一個靜態(tài)文件index.html
/lnmp/workspace/default/index.html
添加構(gòu)建時的環(huán)境變量Document Hello, Docker!
編輯.env文件
SOURCE_DIR=./workspace HTTP_HOST=80 NGINX_VERSION=alpine NGINX_CONFD_DIR=./conf/conf.d NGINX_CONF_FILE=./conf/nginx.conf NGINX_LOG_DIR=./log
SOURCE_DIR=./workspace workspace文件夾掛載到nginx下的 /var/www/html
HTTP_HOST=80 宿主機的80端口映射到nginx下的80端口
NGINX_VERSION=alpine nginx鏡像使用alpine版本
NGINX_CONFD_DIR=./conf/conf.d conf.d文件夾掛載到nginx下的/etc/nginx/conf.d
NGINX_CONF_FILE=./conf/nginx.conf nginx.conf掛載nginx的 /etc/nginx/nginx.conf
NGINX_LOG_DIR=./log
user nginx; worker_processes 1; pid /var/run/nginx.pid; error_log /var/log/nginx/nginx.error.log warn; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main "$remote_addr - $remote_user [$time_local] "$request" " "$status $body_bytes_sent "$http_referer" " ""$http_user_agent" "$http_x_forwarded_for""; access_log /var/log/nginx/nginx.access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }配置虛擬主機
創(chuàng)建/lnmp/conf/conf.d/default.conf文件
注意: root下的路徑必須是以/var/www/html開頭,default是我們本地workspace下的一個文件夾
server { listen 80; server_name localhost default-server; root /var/www/html/default; index index.php index.html index.htm; access_log /var/log/nginx/nginx.localhost.access.log main; error_log /var/log/nginx/nginx.localhost.error.log warn; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }構(gòu)建Nginx配置
編輯 docker-composer.yml
以下的${}都是上面.env文件里配置的變量
version: "3" services: nginx: image: nginx:${NGINX_VERSION} ports: - ${HTTP_HOST}:80 volumes: - ${SOURCE_DIR}:/var/www/html/:rw - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro - ${NGINX_LOG_DIR}:/var/log/nginx/:rw restart: always啟動Nginx
運行命令之后,訪問樹莓派的IP,正常的話會顯示 Hello, Docker!
$ docker-compose up構(gòu)建PHP
編輯/lnmp/.env添加PHP構(gòu)建變量
PHP_CONFIG_FILE=./conf/php.ini PHP_FPM_CONFIG_FILE=./conf/php-fpm.conf
因php.ini配置有點長,可以在下面地址復(fù)制
php.ini
php-fpm.conf
/lnmp/php/Dockerfile
ARG PHP_VERSION FROM php:${PHP_VERSION}-fpm RUN apt update RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev unixodbc-dev gcc g++ make autoconf libc-dev pkg-config添加構(gòu)建PHP
編輯 /lnmp/docker-compose.yml文件
version: "3" services: nginx: image: nginx:${NGINX_VERSION} ports: - ${HTTP_HOST}:80 volumes: - ${SOURCE_DIR}:/var/www/html/:rw - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro - ${NGINX_LOG_DIR}:/var/log/nginx/:rw restart: always php: build: context: ./php args: PHP_VERSION: 7.2 volumes: - ${SOURCE_DIR}:/var/www/html/:rw - ${PHP_CONFIG_FILE}:/usr/local/etc/php/php.ini:ro - ${PHP_FPM_CONFIG_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw cap_add: - SYS_PTRACE restart: always networks: - default虛擬主機支持PHP解析
/lnmp/conf/conf.d/default.conf
下面fastcgi_pass php:9000的php,是指上面docker-compose.yml的一個service名稱,可以用來針對某個項目指定PHP版本
#...其它代碼 location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }添加文件
/lnmp/workspace/default/index.php
啟動預(yù)覽如果之前沒有終止進程的, 可以ctrl + c終止之后再運行下面的命令。
如無意外,訪問樹莓派的IP會顯示 Hello, PHP!.$ docker-compose up添加PHP擴展/lnmp/.env 添加變量,下面以swoole擴展演示,其它的擴展參考下面的操作就可以
PHP_SWOOLE_VERSION=4.2.10/lnmp/docker-compose.yml 添加變量
php: build: context: ./php args: PHP_VERSION: 7.2 PHP_SWOOLE: ${PHP_SWOOLE_VERSION}/lnmp/php/Dockerfile 下載并編譯swoole
# ...其它代碼 ARG PHP_SWOOLE=false RUN if [ ${PHP_SWOOLE} != false ]; then curl -O http://pecl.php.net/get/swoole-${PHP_SWOOLE}.tgz -L && pecl install swoole-${PHP_SWOOLE}.tgz && docker-php-ext-enable swoole ;fi重新編譯注意:Dockerfile有改動的話,必須加--build重新編譯一次, 不然docker-compose up的時候不會生效
$ docker-compose up --build預(yù)覽編輯/lnmp/workspace/default/index.php保存,訪問樹莓派的IP,不出意外你可以找到swoole的擴展
構(gòu)建MYSQL MYSQL持久化Docker容器服務(wù)刪除了,保證數(shù)據(jù)不會丟失
構(gòu)建時變量
創(chuàng)建/lnmp/data/mysql文件夾編輯/lnmp/.env文件,添加mysql服務(wù)端口、登錄密碼與數(shù)據(jù)持久化文件夾。
MYSQL_HOST_PORT=3306 MYSQL_PASSWORD=1234 MYSQL_DATA_DIR=./data/mysql構(gòu)建配置version: "3" services: #... 其它代碼 mysql: image: tobi312/rpi-mysql ports: - ${MYSQL_HOST_PORT}:3306 volumes: - ${MYSQL_DATA_DIR}:/var/lib/mysql:rw environment: MYSQL_ROOT_PASSWORD: "${MYSQL_PASSWORD}"啟動啟動后,用數(shù)據(jù)連接工具測試,鏈接地址:樹莓派IP 端口:3306 用戶名:root 密碼:1234
$ docker-compose up到此為止,屬于你自己的LNMP工作環(huán)境已經(jīng)做好了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28068.html
摘要:構(gòu)建配置其它代碼啟動啟動后,用數(shù)據(jù)連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環(huán)境已經(jīng)做好了。 普通PC環(huán)境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。 Docker 安裝 $ curl -sSL get.docker.com | sudo sh 工作目錄 /lnmp/conf 存放虛擬主機配置/lnmp/data/mysql 存放mys...
摘要:使用部署環(huán)境簡介是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的機器上,也可以實現(xiàn)虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務(wù)及相關(guān)的環(huán)境變量設(shè)置網(wǎng)絡(luò)模式。 使用Docker 部署 LNMP+Redis 環(huán)境 Docker 簡介 Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器...
摘要:使用部署環(huán)境簡介是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的機器上,也可以實現(xiàn)虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務(wù)及相關(guān)的環(huán)境變量設(shè)置網(wǎng)絡(luò)模式。 使用Docker 部署 LNMP+Redis 環(huán)境 Docker 簡介 Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器...
摘要:使用部署環(huán)境簡介是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的機器上,也可以實現(xiàn)虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務(wù)及相關(guān)的環(huán)境變量設(shè)置網(wǎng)絡(luò)模式。 使用Docker 部署 LNMP+Redis 環(huán)境 Docker 簡介 Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器...
閱讀 3965·2021-10-09 09:43
閱讀 2878·2021-10-08 10:05
閱讀 2737·2021-09-08 10:44
閱讀 887·2019-08-30 15:52
閱讀 2815·2019-08-26 17:01
閱讀 3021·2019-08-26 13:54
閱讀 1655·2019-08-26 10:48
閱讀 814·2019-08-23 14:41