如何用docker部署webman項目,腳本怎么寫?
不懂運維方面的,求指教
# 基于官方 PHP 8.2 鏡像構(gòu)建
FROM php:8.2-cli
# 安裝所需的系統(tǒng)依賴
RUN apt-get update && apt-get install -y \
libzip-dev \
unixodbc \
unixodbc-dev \
librabbitmq-dev \
libevent-dev \
&& rm -rf /var/lib/apt/lists/*
# 安裝 PHP 擴展
RUN docker-php-ext-install pcntl bcmath fileinfo pdo pdo_mysql sockets zip
RUN pecl install amqp && docker-php-ext-enable amqp
# 安裝 Redis 擴展
RUN pecl install redis && docker-php-ext-enable redis
RUN docker-php-ext-install mysqli
# 安裝 event 擴展并配置加載順序
RUN pecl install event && echo "extension=event.so" > /usr/local/etc/php/conf.d/event.ini
# 安裝 Composer
RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
# 設(shè)置 Composer 的全局權(quán)限
RUN chmod +x /usr/local/bin/composer
# 設(shè)置 PHP 時區(qū)
RUN echo "date.timezone = Asia/Shanghai" > /usr/local/etc/php/conf.d/timezone.ini
在項目根目錄新建Dockerfile文件
# 基于官方 自定義 鏡像構(gòu)建
FROM php82:latest
# 配置工作目錄
WORKDIR /app
COPY . /app
RUN rm -f /app/.env && mv /app/.env.docker /app/.env
# 端口 8787 (端口號看情況而定)
EXPOSE 8787
# 上傳文件目錄作為數(shù)據(jù)卷
VOLUME /app/public
CMD ["php","/app/start.php","start"]
server:
build: ../server # 你項目所在路徑,也就是Dockerfile文件所在路徑
container_name: server
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ${SERVER_PUBLIC_DIR}:/app/public
depends_on:
- mysql
- redis
ports:
- ${SERVER_PORT}:8787
networks:
docker-compose up -d --build server
docker exec -it server /bin/bash