1. 准备工作
创建一个dockerfile文件,当前懒猫拿我配置php8.3.7-fpm 环境为例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| FROM php:8.3.7-fpm
RUN apt-get update && apt-get install -y vim
RUN apt-get install -y wget
RUN apt-get install unzip
RUN apt-get install -y telnet
RUN docker-php-source extract
RUN docker-php-ext-install pdo_mysql mysqli bcmath pcntl
RUN echo "extension=redis.so" > /usr/local/etc/php/conf.d/docker-php-ext-redis.ini RUN pecl install redis
RUN apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev \ && docker-php-ext-configure gd --with-freetype --with-webp --with-jpeg \ && docker-php-ext-install gd
RUN wget https://xdebug.org/files/xdebug-3.3.2.tgz \ && tar -xzvf xdebug-3.3.2.tgz && cd xdebug-3.3.2 \ && phpize && ./configure && make \ && cp modules/xdebug.so /usr/local/lib/php/extensions/no-debug-non-zts-20230831 \ && echo "zend_extension = xdebug" > /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.remote_handler=dbgp" >> /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.client_port=9003" >> /usr/local/etc/php/conf.d/docker-xdebug.ini \ && echo "xdebug.idekey=phpstorm" >> /usr/local/etc/php/conf.d/docker-xdebug.ini
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer
WORKDIR /var/www
|
2. 构建镜像
执行命令
1
| docker build -t 你想的镜像名:tag名 .
|
3. 运行容器
1
| docker run -d -p 80:80 --name 容器名 镜像名:tag名
|
4. 推送到仓库
1 2 3 4
| docker build -t 仓库名:tag名 . docker login 仓库名 docker push 仓库名/镜像名:tag名
|