본문 바로가기

시스템/snipe-it

[snipe-it] Docker로 설치하기 (자산관리프로그램)

반응형

Snipe-it 은 자산관리 프로그램 오픈소스로 mariadb와 연동되며 설치시에 mariadb + snipe-it 두개의 컨테이너가 필요하다.

 

 

환경

OS

$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

 

Docker Version

$ docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Wed Mar  2 15:25:43 2022
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Wed Mar  2 15:25:43 2022
 OS/Arch:         linux/amd64
 Experimental:    false

 

 

 

 

 

 

mariadb 설치

mariadb 이미지는 현재 최신버전(11.0.2) 이 아래와 같은 에러가 발생하며 restart를 반복하여 이전버전을 사용했다.

2023-07-18 08:27:46+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.0.2+maria~ubu2204 started.
2023-07-18 08:27:46+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
	command was: mariadbd --verbose --help
	Can't initialize timers

 

 

mariadb data 디렉토리 생성

 - volume mount를 통해 mariadb 컨테이너의 data 경로로 사용 된다.

$ mkdir /opt/mariadb-data

 

 

mariadb:10.7.4 다운로드

$ docker pull mariadb:10.7.4

 

 

docker 실행

 - MYSQL_ROOT_PASSWORD=<password> : root의 password 입력

$ docker run -d -p 3306:3306 --name=mariadb --restart=always -v /opt/mariadb-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<password> mariadb:10.7.4

 

참조. root password 변경

$ docker exec -it mariadb /bin/bash
$ mysql -u root -p
> set password=password('<password>');

 

 

docker network 생성

snipe-it, mariadb 에서 사용할 docker network 생성한다.

$ docker network create snipe-it

 

mariadb 를 snipe-it 네트워크에 연결한다.

$ docker network connect snipe-it mariadb

 

 

database 생성 및 권한 설정

snite-it 에서 사용할 데이터베이스와 계정 및 권한 설정한다.

 - database : snipeit

 - user : snipeit

 - password : snipeit

$ docker exec -it mariadb /bin/bash
$ mysql -u root -p
> CREATE DATABASE snipeit;
> CREATE USER 'snipeit'@'%' IDENTIFIED BY 'snipeit';
> GRANT ALL PRIVILEGES ON snipeit.* TO 'snipeit'@'%';
> FLUSH PRIVILEGES;

 

 

 

 

snipe-it 설치

 - 네트워크는 snipe-it 에 연결

 - 환경변수 NGINX_APP_URL은 <local host IP>:<포트> 형식이나 80 default port 를 사용할 예정이므로 생략했다.

 - MYSQL 관련 환경 변수는 앞서 설정했던 mariadb의 정보를 입력한다.

$ docker run -d \
--name=snipe-it \
--network=snipe-it \
-e NGINX_APP_URL=172.16.10.102 \
-e MYSQL_PORT_3306_TCP_ADDR=mariadb \
-e MYSQL_PORT_3306_TCP_PORT=3306 \
-e MYSQL_DATABASE=snipeit \
-e MYSQL_USER=snipeit \
-e MYSQL_PASSWORD='snipeit' \
-e APP_TIMEZONE=Asia/Seoul \
-p 80:80 \
-v /opt/snipe-it/config:/config \
--restart unless-stopped \
linuxserver/snipe-it

 

 

 

 

설치확인

 

docker 컨테이너 정보

$ docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                         NAMES
94c23f639c3b        linuxserver/snipe-it   "/init"                  8 minutes ago       Up 8 minutes        0.0.0.0:80->80/tcp, 443/tcp   snipe-it
e2ece6b1f4a8        mariadb:10.7.4         "docker-entrypoint..."   10 minutes ago      Up 10 minutes       0.0.0.0:3306->3306/tcp        mariadb

 

 

docker network 정보

docker network inspect snipe-it
[
    {
        "Name": "snipe-it",
        "Id": "78d14c8cf24968340fe6f967c2ee6cbb916d53ab69d82dc1e96a7f0965baf685",
        "Created": "2023-07-18T17:58:09.548253561+09:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "94c23f639c3bcb04062745d5bd76600772b8870c16df0c397188838d0109d504": {
                "Name": "snipe-it",
                "EndpointID": "9708ccbfa7545315828174fd7c3d12d03b6b6c66133fe3d810cddd887748596e",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            },
            "e2ece6b1f4a81f50dfc0411a84ba0702c547f8096a983514cb5c779dfba66b16": {
                "Name": "mariadb",
                "EndpointID": "483d19fb42ff3a5b63b4f1c8d4017d219d06c7d2dbd7855f61786fae3b68ed88",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

 

 

 

 

 

웹접속 및 설정

snipe-it 설치 시 환경변수 NGINX_APP_URL 로 접속한다.

http://172.16.10.102

Next를 클릭하면 database 가 설치 된다.

 

사용자 설정을 통해 설치를 마무리 한다.

 

 

반응형