결론은 서로 다른 디렉토리에서의 docker-compose.yml 파일을 쓰면 가능하다.
[1번]
/home/ID/models/docker-compose.yml 파일을 만든다.
[2번]
/home/ID/modelx/docker-compose.yml 파일을 만든다.
[3번]
/home/ID/model3/docker-compose.yml 파일을 만든다.
docker-compose.yml 파일은 아래 색칠 부분만 각자 다르게 설정해야한다. 어떤값이든 상관없지만. 겹치지 않도록 9개의 서로다른 포트번호를 쓴다. 4000 ~ 60000 번 사이는 아무거나 상관없다.(물론 방화벽에서 사용하는 포트는 열어줘야하겠다)
docker-compose.yml (예시) 분홍색숫자 3개가 서버포트이며, 각각의 설정파일마다 서로 다르게 해야한다.
version: "3"
services:
teslamate:
image: teslamate/teslamate:latest
restart: always
environment:
- DATABASE_USER=teslamate
- DATABASE_PASS=secret
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
- MQTT_HOST=mosquitto
ports:
- 4000:4000
volumes:
- ./import:/opt/app/import
cap_drop:
- all
database:
image: postgres:13
restart: always
environment:
- POSTGRES_USER=teslamate
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=teslamate
volumes:
- teslamate-db:/var/lib/postgresql/data
grafana:
image: teslamate/grafana:latest
restart: always
environment:
- DATABASE_USER=teslamate
- DATABASE_PASS=secret
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
ports:
- 3000:3000
volumes:
- teslamate-grafana-data:/var/lib/grafana
mosquitto:
image: eclipse-mosquitto:1.6
restart: always
ports:
- 1883:1883
volumes:
- mosquitto-conf:/mosquitto/config
- mosquitto-data:/mosquitto/data
volumes:
teslamate-db:
teslamate-grafana-data:
mosquitto-conf:
mosquitto-data:
예를들어 5000, 5001, 5002 로 했을 경우
http://내서버IP:5000 메인화면
http://내서버IP:5001 그라파나 데이터 표 분석화면
5002 는 데이터수집용이며 따로 사용되지는 않음.
이제 관리자 권한일 경우 아래와같이 바로실행 가능하겠다.
[models]
# cd /home/ID/models
$ docker-compose -f /home/ID/models/docker-compose.yml up -d
[modelx]
# cd /home/ID/modelx
$ docker-compose -f /home/ID/modelx/docker-compose.yml up -d
[model3]
# cd /home/ID/model3
$ docker-compose -f /home/ID/model3/docker-compose.yml up -d
백업이나 복원시에도 -f /설정파일경로 는 반드시 추가해주고 그 뒤로 나머지 명령어를 적어야하겠다.