基于dockerfile搭建hyperf项目

tech2025-05-18  12

概述:其实知识点不是很难,比较基础,docker真心好用,在开发环境中。写这篇博客的原因是,为了能够帮助到刚入门到兄弟,不知道如何操作。


1.去hyperf官网下载dockerfile,下面我会提供链接,和我写博客当下最新的dockerfile
GitHub链接:点击前往:dockerfiel下载地址dockerfile内容 : # 我没有做任何的修改 # Default Dockerfile # # @link https://www.hyperf.io # @document https://doc.hyperf.io # @contact group@hyperf.io # @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE FROM hyperf/hyperf:7.2-alpine-v3.9-cli LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" ## # ---------- env settings ---------- ## # --build-arg timezone=Asia/Shanghai ARG timezone ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \ APP_ENV=prod # update RUN set -ex \ && apk update \ # install composer && cd /tmp \ && wget https://mirrors.aliyun.com/composer/composer.phar \ && chmod u+x composer.phar \ && mv composer.phar /usr/local/bin/composer \ # show php version and extensions && php -v \ && php -m \ && php --ri swoole \ # ---------- some config ---------- && cd /etc/php7 \ # - config PHP && { \ echo "upload_max_filesize=100M"; \ echo "post_max_size=108M"; \ echo "memory_limit=1024M"; \ echo "date.timezone=${TIMEZONE}"; \ } | tee conf.d/99_overrides.ini \ # - config timezone && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ && echo "${TIMEZONE}" > /etc/timezone \ # ---------- clear works ---------- && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \ && echo -e "\033[42;37m Build Completed :).\033[0m\n" WORKDIR /opt/www # Composer Cache # COPY ./composer.* /opt/www/ # RUN composer install --no-dev --no-scripts COPY . /opt/www RUN composer install --no-dev -o EXPOSE 9501 ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]
2.创建镜像
docker build -t ImageName:TagName dir # 切到dockerfile的目录(如果是dockerfile当前目录,直接写.它自己回去扫描) docker build -t ImageName:TagName .

命令详解:

-t: 给镜像加一个Tag ImageName:给镜像起的名称 TagName:给镜像的Tag名 Dir :Dockerfile所在目录

执行完概述: 执行完毕,就会生成2个镜像,如图所示:

3.重命名镜像
# 解释下:因为我这边创建完镜像后,其中一个镜像还是none:none,我这边就自己多加个命令进来了 docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
4.运行容器

这边稍微理下思路,在我们镜像立马,hyperf已经帮我们整了个可启动的项目,那我们要做什么呢? 1.文件挂载:可以自己官网上在本地整个项目代码,挂载进去,这边我们把容器里面的项目给复制出来,放到我们项目目录下 2.端口映射:默认就9501

# 这里运行容器,有个小坑,我这边试了几下都是一启动,在docker ps -a # 就变成退出了,查了下加个-it交互运行参数 docker run -d -it -p 9501:9501 --name hyperf7.2 hyperf/hyperf:7.2 # 将容器理的文件复制出来(后面是我目标目录) docker cp hyperf7.2:/opt/www/. /workspace/www/hyperf/ # 然后退出 docker rm -f hyperf7.2 # 加入挂载目录 docker run -d -it -p 9501:9501 -v /workspace/www/hyperf:/opt/www --name hyperf7.2 --rm hyperf/hyperf:7.2
最新回复(0)