安裝 Akaunting + Docker

Akaunting 新一代嘅開源會計系統,我就幾喜歡,之所以要介紹俾各位。我其實用開 Wave Accounting 嘅,不過 Akaunting 可以自己安裝,自己話事,又係用 Vue JS(新一代嘅 frontend 軟件),個畫面夠靚仔!

先去睇片:

有片係咪易明好多呢? 😛

個我整嘅 docker files

Dockerfile 係用嚟整個 Akaunting image 用嘅:

FROM ubuntu:focal

ARG DEBIAN_FRONTEND=noninteractive

RUN \
 echo "**** install build packages ****" && \
 apt update && \
 apt install -y software-properties-common && \
 apt update && \
 add-apt-repository ppa:ondrej/php && \
 apt update && \
 apt install -y \
    apache2 \
    php7.4 \
    libapache2-mod-php7.4 \
    php7.4-bcmath \
    php7.4-common \
    php7.4-imap \
    php7.4-mbstring \
    php7.4-xmlrpc \
    php7.4-soap \
    php7.4-gd \
    php7.4-xml \
    php7.4-intl \
    php7.4-mysql \
    php7.4-cli \
    php7.4-ldap \
    php7.4-zip \
    php7.4-curl \
    unzip \
    curl

COPY php.ini /etc/php/7.4/apache2/php.ini

RUN \
 echo "**** install akaunting ****" && \
 curl -O -J -L https://akaunting.com/download.php?version=latest && \
 mkdir -p /var/www/html/akaunting && \
 unzip Akaunting_*.zip -d /var/www/html/akaunting/ && \
 chown -R www-data:www-data /var/www/html/akaunting/ && \
 chmod -R 755 /var/www/html/akaunting/

COPY akaunting.conf /etc/apache2/sites-available/akaunting.conf

RUN \
 a2ensite akaunting && \
 a2enmod rewrite && \
 a2enmod ssl

EXPOSE 80 443

ENV APACHE_RUN_DIR=/var/run/apache2
ENV APACHE_RUN_USER=www-data
ENV APACHE_RUN_GROUP=www-data
ENV APACHE_LOG_DIR=/var/log/apache2

CMD ["apachectl", "-D",  "FOREGROUND"]

 

docker-compose.yml 用嚟 create 啲 containers、volumes、networks :

version: '3.7'
services:
  mysql:
    container_name: $DB_CONTAINER
    restart: unless-stopped
    image: mariadb:latest
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${DB_PASS}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_PASS}
      - MYSQL_DATABASE=${DB_NAME}
    ports:
      - ${DB_PORT}:3306
    networks:
      - lan

  akaunting:
    image: <your_image_tag_here>
    container_name: $AKAUNTING_CONTAINER
    ports:
      - $VIRTUAL_PORT:80
    restart: always
    environment:
      - DEBUG=false
      - TZ=${TZ}

      - APP_LOCALE=${APP_LOCALE}

      - DB_HOST=mysql
      - DB_USER=${DB_USER}
      - DB_PASS=${DB_PASS}
      - DB_NAME=${DB_NAME}

      - AKAUNTING_URL=${AKAUNTING_URL}
      - AKAUNTING_COMPANY_NAME=${AKAUNTING_COMPANY_NAME}
      - AKAUNTING_COMPANY_EMAIL=${AKAUNTING_COMPANY_EMAIL}
      - AKAUNTING_ADMIN_EMAIL=${AKAUNTING_ADMIN_EMAIL}
      - AKAUNTING_ADMIN_PASSWORD=${AKAUNTING_ADMIN_PASSWORD}
      - AKAUNTING_BACKUPS_EXPIRY=${AKAUNTING_BACKUPS_EXPIRY}
    depends_on:
      - mysql
    volumes:
      - akadata:/var/www/html/akaunting
      - akaapache:/etc/apache2/sites-available
    networks:
      - lan

volumes:
  akadata:
    name: $DATA_VOL
  akaapache:
    name: $CONF_VOL
  db:
    name: $DB_VOL

networks:
  lan:
    name: $VIRTUAL_NETWORK
    driver: bridge

 

好易搞啫,大家嚟推廣下!