如何用docker部署webman项目

leeseean

问题描述

如何用docker部署webman项目,脚本怎么写?

为此你搜索到了哪些方案及不适用的原因

不懂运维方面的,求指教

1353 4 1
4个回答

Gin
  • leeseean 2023-06-21

    搜了没找到满地的答案才来提问的

不败少龙

https://www.workerman.net/a/1464 用这个吧 我就是用这个部署的 最后成功了

ziyoren

https://www.workerman.net/a/1672 这个也可以试一下

  • 暂无评论
leedom

1.构建php镜像

# 基于官方 PHP 8.2 镜像构建
FROM php:8.2-cli

# 安装所需的系统依赖
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

# 设置 Composer 的全局权限
RUN chmod +x /usr/local/bin/composer

# 设置 PHP 时区
RUN echo "date.timezone = Asia/Shanghai" > /usr/local/etc/php/conf.d/timezone.ini

2.构建项目镜像

在项目根目录新建Dockerfile文件
    # 基于官方 自定义 镜像构建
FROM php82:latest

# 配置工作目录
WORKDIR /app

COPY . /app
RUN rm -f /app/.env && mv /app/.env.docker /app/.env

# 端口 8787 (端口号看情况而定)
EXPOSE 8787

# 上传文件目录作为数据卷
VOLUME /app/public

CMD ["php","/app/start.php","start"]

3.编排文件

  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:

4.启动命令

docker-compose up -d --build server

docker exec -it server /bin/bash
年代过于久远,无法发表回答
×
🔝