로그인

검색

[invoiceninja] 인보이스닌자 설치 (docker)

[invoiceninja] 인보이스닌자 설치 (docker)

 

참조

https://github.com/invoiceninja/dockerfiles

 

 

 

1. 도커파일 가져오기

git clone https://github.com/invoiceninja/dockerfiles.git -b debian
cd dockerfiles/debian

 

 

2. env 파일 수정

APP_URL=http://in.localhost:8003/                      
APP_KEY=<insert your generated key in here>             #앱키는 꼭 만들어야 함. 예, APP_KEY=base64:8k5DcP*******
APP_DEBUG=true
REQUIRE_HTTPS=false
IN_USER_EMAIL=
IN_PASSWORD=

 

 

 

3. 앱키 만들기

docker run --rm -it invoiceninja/invoiceninja-debian php artisan key:generate --show

 

 

 

4. 실행

docker-compose up -d

 

 

 

** docker compose 파일 수정

x-logging: &default-logging
  options:
    max-size: "10m"
    max-file: "3"
  driver: json-file

services:
  app:
    build:
      context: .
    image: invoiceninja/invoiceninja-debian:${TAG:-latest}
    restart: unless-stopped
    env_file:
      - ./.env
    volumes:
      - ./.env:/var/www/html/.env
      # - ./php/php.ini:/usr/local/etc/php/conf.d/invoiceninja.ini:ro
      # - ./php/php-fpm.conf:/usr/local/etc/php-fpm.d/invoiceninja.conf:ro
      # - ./supervisor/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf:ro
      - app_cache:/var/www/html/bootstrap/cache
      - app_public:/var/www/html/public
      - app_storage:/var/www/html/storage
    networks:
      - app-network
    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_healthy
    logging: *default-logging

  nginx:
    image: nginx:alpine
    restart: unless-stopped
    ports:
      - "6580:80"                            #포트 충돌이 없도록 사용안한 포트로 지정
    volumes:
      - ./nginx:/etc/nginx/conf.d:ro
      - app_public:/var/www/html/public:ro
      - app_storage:/var/www/html/storage:ro
    networks:
      - app-network
    depends_on:
      - app
    logging: *default-logging

  mysql:
    image: mysql:8
    restart: unless-stopped
    env_file:
      - ./.env
    environment:
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_USER: ${DB_USERNAME}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - app-network
    healthcheck:
      test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER}", "-p${MYSQL_PASSWORD}" ]
      interval: 10s
      timeout: 5s
      retries: 5
    logging: *default-logging

  redis:
    image: redis:alpine
    restart: unless-stopped
    volumes:
      - redis_data:/data
    networks:
      - app-network
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 10s
      timeout: 5s
      retries: 5
    logging: *default-logging

networks:
  app-network:
    driver: bridge

volumes:
  app_cache:
    driver: local
  app_public:
    driver: local
  app_storage:
    driver: local  
  mysql_data:
    driver: local
  redis_data:
    driver: local

 

 

 

 

** volume 볼륨 위치   (백업해야할 폴더)

/var/lib/docker/volume

 

Untitled-2 copy.JPG

 

 

 

이 게시물을

이 댓글을 삭제하시겠습니까?