docker Dockerfile學習---構建apache環境


1、創建目錄,上傳包

創建項目目錄

$ mkdir apache_php
$ cd apache_php

 

把包下載后放到服務器該目錄下

$ ls
apr-1.6.5.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.39.tar.gz  php-7.2.9.tar.gz

 

2、創建Dockerfile

$ vi Dockerfile
# From表示使用centos:latest這個鏡像為基礎構建我們的鏡像
FROM centos:latest

# 創建者的基本信息
MAINTAINER xiaozhou (xiaozhou@docker.com)

# 把下載好的源碼包copy到容器,使用ADD會自動將文件解壓,/src/ 是容器中存放文件的目錄,目錄不存在會自動創建
ADD apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.39.tar.gz php-7.2.9.tar.gz  /src/

# RUN命令會在容器中執行,每次執行都會創建一層新的鏡像,這里為了減少層數使用\換行,使用 && 將命令連接
RUN yum -y install gcc make zlib-devel pcre-devel pcre \
#安裝apache依賴庫apr
&& cd /src && cd apr-1.6.5 \
&& ./configure --prefix=/usr/local/apr/ && make && make install \
&& cd /src && cd apr-util-1.6.1 \
# 需要先安裝expat-devel,不然安裝apr-util會報錯
&& yum -y install expat-devel \ 
&& ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ \
#安裝apache依賴庫 apr-util
&& make && make install \
&& cd /src && cd  httpd-2.4.39 \
&& ./configure  \
--prefix=/usr/local/apache/ \
#指定剛才安裝的apr目錄
--with-apr=/usr/local/apr/ \
#指定剛才安裝的apr-util目錄
--with-apr-util=/usr/local/apr-util/ \ 
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--enable-static-support \
#編譯apache
&& make && make install \
&& cd /src && cd php-7.2.9 \
&& yum -y install libxml2-devel \
# 安裝php依賴
&& yum -y install openssl openssl-devel libcurl-devel perl \ 
# apxs沒有指定perl的路徑需要修改這個文件,不然會報錯
&& sed -i '1i\#!/usr/bin/perl -w' /usr/local/apache/bin/apxs \ 
# 擴展可以按需選擇,這里只加了常用的,擴展有依賴的需要先使用yum安裝對應依賴
&& ./configure \ 
-prefix=/usr/local/php \
--with-pdo-mysql \
--with-curl \
--enable-bcmath \
--with-openssl \
--enable-mbstring \
--enable-opcache \
# 指定剛才安裝的apache位置
--with-apxs2=/usr/local/apache/bin/apxs \
&& make && make install  

# 將端口暴露出去,注意:這只是一個聲明,在運行時並不會因為這個聲明應用就會開啟這個端口的服務。要在宿主機中訪問這個端口可以在運行時加上 -p 80:80 這樣訪問宿主機80端口就會映射到容器的80端口
EXPOSE 80

# 啟動服務命令
CMD ["/usr/local/apache/bin/httpd", "-DFOREGROUND"] 
View Code

 

3、構建鏡像

$ docker build -t apache:php .

 

4、啟動容器

$ docker run -it -d -p 80:80 apache:php

 

瀏覽器訪問,看見出現 It works! ,說明部署成功
http://192.168.121.121

 

參考:

 

https://phperzh.com/articles/3175


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM