简介

zammad 齐名的工单处理软件,官网地址 https://github.com/uvdesk/community-skeleton

配置步骤

下载必要的组件

这里自定义的容器镜像中会涉及较多的组件,对于网络环境不够稳定的场所建议先下载下来直接引用

1、下载对应的代码内容

在 github 的项目说明文档中有对应的版本下载地址 https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip

2、下载相关的文件

这里的文件主要是 Dockerfile 中需要下载的内容

3、这些文件放到 deps 目录中

其中 sources.list 是镜像源文件系统的国内更新源

Dockerfile-官网

官网的 Dockerfile 存在 PHP 版本兼容性问题,建议考虑下面的 Dockerfile 版本

FROM ubuntu:22.04
LABEL maintainer="waringid@gmail.com"

ENV GOSU_VERSION 1.11

#RUN  adduser uvdesk -q --disabled-password --gecos ""
RUN apt-get update && apt-get -y install ca-certificates
RUN  mv /etc/apt/sources.list /etc/apt/sources.list.orig
COPY ./deps/sources.list /etc/apt/sources.list
COPY ./deps/* /tmp/

# Install base supplimentary packages
RUN  apt-get update && apt-get -y upgrade \
    && apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:ondrej/php \
    && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install \
        adduser curl \
        wget libdigest-sha-perl \
        git \
        unzip \
        apache2 \
        mysql-server \
        php7.4 \
        libapache2-mod-php7.4 \
        php7.4-common \
        php7.4-xml \
        php7.4-imap \
        php7.4-mysql \
        php7.4-mailparse \
        ca-certificates; \
    if ! command -v gpg; then \
                apt-get install -y --no-install-recommends gnupg2 dirmngr; \
        elif gpg --version | grep -q '^gpg (GnuPG) 1\.'; then \
                apt-get install -y --no-install-recommends gnupg-curl; \
        fi;

RUN  adduser uvdesk -q --disabled-password --gecos ""
COPY ./.docker/config/apache2/env /etc/apache2/envvars
COPY ./.docker/config/apache2/httpd.conf /etc/apache2/apache2.conf
COPY ./.docker/config/apache2/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY ./.docker/bash/uvdesk-entrypoint.sh /usr/local/bin/
COPY . /var/www/uvdesk/

RUN \
    a2enmod php7.4 rewrite; \
    chmod a+x /usr/local/bin/uvdesk-entrypoint.sh; \
    dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
    mv /tmp/gosu-amd64 /usr/local/bin/gosu && mv /tmp/gosu-amd64.asc /usr/local/bin/gosu.asc; \
    export GNUPGHOME="$(mktemp -d)" \
    && gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
        && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
    && gpgconf --kill all \
    && chmod +x /usr/local/bin/gosu \
    && gosu nobody true; \
    \
    mv /tmp/installer  /usr/local/bin/composer.php; \
    actualSig="$(cat /tmp/installer.sig)"; \
    currentSig="$(shasum -a 384 /usr/local/bin/composer.php | awk '{print $1}')"; \
    if [ "$currentSig" != "$actualSig" ]; then \
        echo "Warning: Failed to verify composer signature."; \
        exit 1; \
        fi; \
    php /usr/local/bin/composer.php --quiet --filename=/usr/local/bin/composer \
    && chmod +x /usr/local/bin/composer; \
    chown -R uvdesk:uvdesk /var/www; \
    rm -rf \
#        "$GNUPGHOME" \
        /var/lib/apt/lists/* \
        /usr/local/bin/gosu.asc \
        /usr/local/bin/composer.php \
        /var/www/bin \
        /var/www/html \
        /tmp/* \
        /var/www/uvdesk/.docker;

# Change working directory to uvdesk source
WORKDIR /var/www

ENTRYPOINT ["uvdesk-entrypoint.sh"]
CMD ["/bin/bash"]

Dockerfile-更新版本

FROM thecodingmachine/php:8.3-v4-apache

ENV PHP_EXTENSION_MAILPARSE=1 \
    PHP_EXTENSION_IMAP=1 \
    APACHE_DOCUMENT_ROOT=/var/www/html/public \
    PHP_INI_MEMORY_LIMIT=1g

RUN composer create-project uvdesk/community-skeleton /var/www/html

RUN a2enmod rewrite \
    && cd /var/www/html/ \
    && chmod 777 .env var config \
    && php bin/console c:c

uvdesk.yml

services:
  uvdesk:
    image: dietermartens/uvdesk
    environment:
      # installation in dev, change it after installation to prod
      - APP_ENV=prod
      - APP_SECRET=
      - TZ=Asia/Shanghai
      - APP_TIMEZONE=Asia/Shanghai
      - APP_CURRENCY=CHN
      - CRON_USER1=root
#      - CRON_SCHEDULE1=*/5 * * * *
#      - CRON_COMMAND1=cd /var/www/html && php bin/console uvdesk:refresh-mailbox info@domain.tld support@domain.tld
    restart: always
    extra_hosts:
      - "{uvdesk.domain.tld}:127.0.0.1"
    ports:
      - 8080:80
    networks:
      - public
    volumes:
      - /data/uvdesk/data:/var/www/html
    links:
      - db

  db:
    image: mariadb:10.11.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootPassword
    networks:
      - public
    volumes:
      - /data/uvdesk/db:/var/lib/mysql

networks:
  public:
    name: proxy
    external: false

  • 无标签

0 评论

你还没有登录。你所做的任何更改会将作者标记为匿名用户。 如果你已经拥有帐户,请登录