国振熹 發表於 2020-10-13 22:00:00

docker-dockerfile构建与部署php

<h1 id="dockerfile构建与部署php">dockerfile构建与部署php</h1>
<h3 id="1-创建dockerfile存放目录">1. 创建dockerfile存放目录</h3>
<h4 id="11-创建目录">1.1 创建目录</h4>
<pre><code class="language-shell"># mkdir -p /dockerfile
# cd /dockerfile/
# mkdir -p php
# cd php/
</code></pre>
<h3 id="2-创建php-dockerfile配置文件">2. 创建php dockerfile配置文件</h3>
<h4 id="21-创建文件">2.1 创建文件</h4>
<pre><code class="language-shell"># touch Dockerfile
</code></pre>
<h4 id="22-下载php包">2.2 下载php包</h4>
<ul>
<li>
<p><strong>官网下载地址:</strong>https://www.php.net/</p>
<pre><code class="language-shell"># wget https://www.php.net/distributions/php-7.2.34.tar.gz
# ll -a
总用量 19472
drwxr-xr-x. 2 root root       49 10月 13 20:38 .
drwxr-xr-x. 4 root root       30 10月 13 20:21 ..
-rw-r--r--. 1 root root      0 10月 13 20:21 Dockerfile
-rw-r--r--. 1 root root 19936114 10月 13 20:37 php-7.2.34.tar.gz
</code></pre>
</li>
</ul>
<h4 id="23-编写文件">2.3 编写文件</h4>
<pre><code class="language-dockerfile"># vim Dockerfile
# cat Dockerfile
#this docker file
#VERSION 1
#author:shichao@scajy.cn
FROM centos:7
MAINTAINERshichao@scajy.cn
RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel
ADD php-7.2.34.tar.gz /tmp/

RUN cd /tmp/php-7.2.34 &amp;&amp; \
    ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-mysql --with-mysqli \
    --with-openssl --with-zlib --with-curl --with-gd \
    --with-jpeg-dir --with-png-dir --with-iconv \
    --enable-fpm --enable-zip --enable-mbstring &amp;&amp; \
    make -j 4 &amp;&amp; \
    make install &amp;&amp; \
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf &amp;&amp; \
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf &amp;&amp; \
    sed -i "s/127.0.0.1/0.0.0.0/" /usr/local/php/etc/php-fpm.d/www.conf &amp;&amp; \
    sed -i "21a \daemonize = no" /usr/local/php/etc/php-fpm.conf &amp;&amp; \
    cpphp.ini-production /usr/local/php/etc/php.ini

RUN rm -rf /tmp/php-7.2.34* &amp;&amp; yum clean all

WORKDIR /usr/local/php
EXPOSE 9000
CMD ["./sbin/php-fpm", "-c", "/usr/local/php/etc/php-fpm.conf"]
</code></pre>
<h3 id="3-构建php配置文件">3. 构建php配置文件</h3>
<pre><code class="language-shell"># docker build -t php:v1 .
Sending build context to Docker daemon19.94MB
Step 1/9 : FROM centos:7
---&gt; 7e6257c9f8d8
Step 2/9 : MAINTAINERshichao@scajy.cn
---&gt; Using cache
---&gt; dc37782fc495
Step 3/9 : RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel
---&gt; Using cache
---&gt; fc741796df21
Step 4/9 : ADD php-7.2.34.tar.gz /tmp/
---&gt; Using cache
---&gt; 10e40e4e3211
Step 5/9 : RUN cd /tmp/php-7.2.34 &amp;&amp;   ./configure --prefix=/usr/local/php   --with-config-file-path=/usr/local/php/etc   --with-mysql --with-mysqli   --with-openssl --with-zlib --with-curl --with-gd   --with-jpeg-dir --with-png-dir --with-iconv   --enable-fpm --enable-zip --enable-mbstring &amp;&amp;   make -j 4 &amp;&amp;   make install &amp;&amp;   cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf &amp;&amp;   cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf &amp;&amp;   sed -i "s/127.0.0.1/0.0.0.0/" /usr/local/php/etc/php-fpm.conf &amp;&amp;   sed -i "21a \daemonize = no" /usr/local/php/etc/php-fpm.conf &amp;&amp;   cpphp.ini-production /usr/local/php/etc/php.ini
---&gt; Using cache
---&gt; 7a39c5288966
Step 6/9 : RUN rm -rf /tmp/php-7.2.34* &amp;&amp; yum clean all
---&gt; Using cache
---&gt; 48884b61b259
Step 7/9 : WORKDIR /usr/local/php
---&gt; Using cache
---&gt; 46e1d65adc72
Step 8/9 : EXPOSE 9000
---&gt; Using cache
---&gt; f76e5fc23518
Step 9/9 : CMD ["./sbin/php-fpm", "-c", "/usr/local/php/etc/php-fpm.conf"]
---&gt; Using cache
---&gt; e797501fb114
Successfully built e797501fb114
Successfully tagged php:v1

</code></pre>
<h4 id="31-查看镜像构建是否成功">3.1 查看镜像,构建是否成功</h4>
<pre><code class="language-shell"># docker images
REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
php               v1                  e797501fb114      24 minutes ago      1.17GB
nginx               v1                  a87daa7377d2      2 hours ago         365MB
&lt;none&gt;            &lt;none&gt;            ebd89a778c08      2 hours ago         227MB
nginx               nginx01             2fc3f55169e9      3 days ago          133MB
nginx               latest            7e4d58f0e5f3      4 weeks ago         133MB
busybox             latest            6858809bf669      4 weeks ago         1.23MB
centos            7                   7e6257c9f8d8      2 months ago      203MB
centos            latest            0d120b6ccaa8      2 months ago      215MB
</code></pre>
<h3 id="4-使用php镜像创建docker容器">4. 使用php镜像创建docker容器</h3>
<pre><code class="language-shell"># docker run -it -d --name=php_v1 --network=testphp:v1
237aa105fab91184a88b30c53851923000f4809289998b79704d2b6756f0c0c1
</code></pre>
<h3 id="5-验证php容器是否运行">5. 验证php容器是否运行</h3>
<pre><code class="language-shell"># docker ps -a
CONTAINER ID      IMAGE               COMMAND                  CREATED            STATUS            PORTS                  NAMES
237aa105fab9      php:v1            "./sbin/php-fpm -c /…"   About a minute ago   Up About a minute   9000/tcp               php_v1
30593a76c50a      nginx:v1            "nginx -g 'daemon of…"   2 hours ago          Up 2 hours          0.0.0.0:8081-&gt;80/tcp   nginx_v1
</code></pre><br><br>
来源:https://www.cnblogs.com/scajy/p/13811658.html
頁: [1]
查看完整版本: docker-dockerfile构建与部署php