我選的是centos7服務(wù)器,然后nginx,mysql,redis這些依賴我一開(kāi)始是網(wǎng)上搜索用命令行安裝的,折騰了很久各種問(wèn)題,最后選擇了用寶塔面板去安裝,解決了安裝過(guò)程出現(xiàn)的一些問(wèn)題。
然后是選擇了用docker部署,項(xiàng)目部署在docker容器,mysql則部署在宿主機(jī)上。
然后遇到的一個(gè)問(wèn)題數(shù)據(jù)庫(kù)連不上的問(wèn)題,因?yàn)轫?xiàng)目是在容器里,mysql在外面,所以不能使用localhost的辦法去連。mysql的host需要填寫(xiě)宿主機(jī)的ip,如下圖我所圈中的那個(gè)ip,然后還要設(shè)置允許訪問(wèn)
這樣就能連上數(shù)據(jù)庫(kù)了。
這是dockerfile
FROM centos:7
# install yum-utils
RUN yum -y install yum-utils
# install libevent
RUN yum -y install libevent libevent-devel
# install php8.1 libs
RUN yum -y install epel-release
RUN yum -y install https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
RUN yum-config-manager --enable remi-php81
RUN yum -y install php-cli php-event php-posix php-pcntl php-zip php-openssl php-devel php-gd php-mbstring php-curl php-xml php-simplexml php-fileinfo php-sodium php-pear php-bcmath php-json php-mysqlnd php-redis php-amqp php-imagick --skip-broken
# copy project
RUN mkdir /app
COPY ./ /app
RUN chmod -R 777 /app/public /app/runtime
# install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
RUN composer install --no-dev --working-dir=/app
# clean all
RUN yum clean all
ENTRYPOINT ["php", "/app/start.php", "start"]
這是build命令
# -e HOST_IP=$(ip addr show eth0 | awk '/inet / {print $2}' | cut -d '/' -f 1) 這句是將宿主機(jī)的 IP 地址作為 HOST_IP 環(huán)境變量傳遞給容器
docker run -d --restart=always --name=app -p 8787:8787 -e HOST_IP=$(ip addr show eth0 | awk '/inet / {print $2}' | cut -d '/' -f 1) developer/app:1.0