idea启动build
或者命令行启动:
docker build -t Name:TagName
# 基础镜像
FROM your_registry/your_app-base:test
# 设置工作目录
WORKDIR /Users/wcy/develop/buildCode/exc-tao
# 修改 PHP-FPM 配置文件中的最大子进程数
RUN sed -i "s#pm.max_children = 300#pm.max_children = 20#g" /usr/local/webserver/php/etc/php-fpm.d/www.conf
RUN sed -i "s#pm.max_children = 600#pm.max_children = 20#g" /usr/local/webserver/php/etc/php-fpm.d/www.conf
# 复制应用代码
COPY exc-tao /data/srv/your_app/
# 复制配置文件和脚本
COPY supervisor.conf /home/supervisord.conf
COPY change.sh /etc/init.d/
COPY ApolloClient.php /data/apollo-php-client/bin/
# 修正 yum 安装 Python 3.11
RUN set -x \\
&& sed -i '1s|^.*$|#!/usr/bin/python2.7|' /usr/bin/yum \\
&& sed -i '1s|^.*$|#!/usr/bin/python2.7|' /usr/libexec/urlgrabber-ext-down \\
&& yum clean all \\
&& yum makecache \\
&& yum -y update \\
&& yum install -y epel-release \\
&& yum update -y \\
&& yum install openssl-devel openssl11 openssl11-devel -y \\
&& yum install readline-devel \\
&& yum install wget \\
&& cd /root \\
&& wget <https://mirrors.huaweicloud.com/python/3.11.0/Python-3.11.0.tgz> \\
&& tar -xzf Python-3.11.0.tgz \\
&& export CFLAGS=$(pkg-config --cflags openssl11) \\
&& export LDFLAGS=$(pkg-config --libs openssl11) \\
&& cd /root/Python-3.11.0 \\
&& ./configure --prefix=/usr/python --with-ssl \\
&& make \\
&& make install \\
&& ln -sf /usr/python/bin/python3.11 /usr/bin/python3.11 \\
&& ln -sf /usr/python/bin/pip3.11 /usr/bin/pip3.11
# 修改文件权限和配置文件
RUN set -x \\
&& chmod -R 755 /data/srv/your_app/conf \\
&& chmod -R 755 /data/srv/your_app/doc \\
&& chmod -R 755 /data/srv/your_app/www/app/services/shortvideo/python \\
&& sed -i 's/pm.max_children = 300/pm.max_children = 600/g' /usr/local/webserver/php/etc/php-fpm.d/www.conf \\
&& sed -i 's/memory_limit = 128M/memory_limit = 1024M/g' /usr/local/webserver/php/etc/php.ini \\
&& mkdir -p /data/srv/your_app/logs \\
&& echo '0 */2 * * * root /data/srv/your_app/www/shortvideoadd.sh ' >> /etc/crontab \\
&& echo '*/5 * * * * root chmod 777 -R /var/log/nginx/' >> /etc/crontab \\
&& echo '*/5 * * * * root /data/srv/your_app/www/forecho.sh' >> /etc/crontab
# 暴露端口
EXPOSE 80
# 设置容器启动命令
ENTRYPOINT ["supervisord", "-n", "-c", "/home/supervisord.conf"]