docker 12

게더타운 출석체크 자동화-Docker 컨테이너화 시키기

서버 분리 및 도커 컨테이너화기존에는 하나의 서버에서 모든 업무를 처리했지만, 효율적인 운영을 위해 서버를 분리하고 도커 컨테이너화를 진행했습니다. 이를 통해 라즈베리 파이에 설치된 도커를 활용하여 각각의 서버를 컨테이너 형태로 운영하게 되었습니다.변경된 구성:Flask 서버 컨테이너: 학생명단 텍스트 파일 생성 및 관리를 위한 Flask 서버를 컨테이너로 운영합니다. 이 서버는 WebSocket을 통해 게더타운에서 가져온 학생 명단을 처리하고 필요한 작업을 수행합니다.Node.js 서버 컨테이너: 게더타운 접속자 명단을 가져오는 기능을 수행하는 Node.js 서버를 컨테이너로 운영합니다. 이 서버는 게더타운 API를 활용하여 학생들의 접속 정보를 수집하고 필요한 데이터를 전달합니다.이와 같이 서버를 분..

게더타운 출석체크 자동화 3탄 - 최종개발

회사 업무 자동화를 위한 라즈베리 파이 서버 구축 회사에서 제공한 노트북의 성능 한계로 인해, 크롬 디버그 모드와 Flask 서버를 별도의 시스템으로 분리하기로 결정했습니다. 이를 위해 집에 있던 라즈베리 파이 서버를 활용하여 업무 자동화를 진행하기로 했습니다. 라즈베리 파이 서버 구축 과정: Flask 서버 호스팅: 라즈베리 파이에 Flask 서버를 호스팅하기 위해 필요한 설정을 마쳤습니다. 이제 Flask 서버는 회사에서 지급한 노트북과는 별도로 동작하며, 업무 자동화에 필요한 데이터를 처리합니다. nodejs 활용: 크롬 디버그 모드 대신 node js websocket 를 활용하여 업무를 진행합니다. 이 라이브러리를 통해 플레이어 정보를 쉽게 가져올 수 있어서 업무 효율성을 높일 수 있습니다. D..

3. 업무 자동화를 위한 최종 구축 방식

마지막으로 구축된 방식은 두 개의 도커 컨테이너를 사용하여 전체적인 시스템을 구축했습니다. Node.js 기반 웹소켓 프로세스: gathertown/gather-game-client를 사용하는 노드 기반의 웹소켓 프로세스입니다. 이 프로세스는 다음과 같은 알고리즘을 따릅니다: 먼저 게더타운 측에서 제어용 API 키 값을 발급받습니다. Node.js를 활용하여 모니터링할 게더타운의 환경 변수를 체크하고, 접속 중인 사용자의 정보를 반복적으로 가져와 저장합니다. 이를 위해 두 개의 독립적인 Node.js 컨테이너를 구축했습니다. 5분마다 모든 사용자 정보를 MongoDB에 저장하고, 5초마다 사용자의 이름을 가공하여 내부 서버의 폴더에 텍스트 문서로 저장합니다. Python Flask 서버: 이 서버는 다음..

docker 모니터링 (prometheus,grafana,cadvisor)

오늘 할작업은 4대의 서버의 서버 상태 및 도커상태 모니터링이며 cadvisor 도커상태 node_exporter 서버상태 모니터링이다 다음엔 로그도 모니터링해볼예정 어쩌다 보니 서버가 총 4대가 되었다. NAS서버(데이터 및 amd64 용도커) 라즈베리파이(내부망 + 외부망연결용 + arm용 집도커) OCI1,2 (오라클 A1 서버 + ARM 외부도커) 이 4개를 모니터링하기위하여 연결하여보았다. 사전설정 >> OCI에서 우리집 ip를 방화벽허용해줬다. 다른곳에서는 접속안되게 설정한것이다. 방식은 이렇다 나스서버에서 모든 데이터를 수집하며 라즈베리+OCI1,2의 정보를 수집하여 가공 처리 한다. prometheus.yml 설정파일을 만들어둔다 /volume1/SSD_DATA/prome/prometheu..

Docker 가지고놀기 - phpmyadmin

오늘 설치해볼것은 phpmyadmin 이다. php기반으로된 mysql 관리?프로그램이라고 보면된다. 도커 기반으로 설치할거라 접속할 mysql 아이피 아이디 비번 포트번호 정도 알고있으면되고 mysql 에서 아이디 비번을 외부 접속또는 같은망일경우 같은망정도만 접속되게 설정해두면 된다. docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 9490:80 phpmyadmin 도커는 이렇게만 실행하면 끝이다. 여러가지 환경변수가 있지만 PMA_ARBITRARY 는 접속할 아이피:포트 를 직접쳐서 들어갈수 있게 설정을 활성화 해주는 명령이고 외부포트는 9490포트를 오픈하는것이다. 이렇게 설정후 프록시 매니저에서 9490포트를 서브도메인+80으로 맞쳐주면 서브도메인..

Docker 가지고놀기 - NPM(nginx-proxy-manager)

내가 실행중인 도커 컨테이너중 제일 중요하다고 생각하는 녀석이다 간단하게 서브 도메인으로 분리해서 각각 서비스에 연결해주는녀석이다 기본적으로 제어는 81번포트로하며 http와 https를 제어하기때문에 80,443포트를 사용한다. version: "3" services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format : - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - ..

Docker 가지고놀기 - 비상용 웹쉘(shellinabox)

갑자기 쉘에 접속할일이 생겻는데 푸티나 각종 프로그램이 없을때 사용할수 있는 웹페이지(?)를 만들수 있다. 도커에 컨테이너 방식으로 만들어지므로 메인서버에는 간섭을 주지않는다.(물론 트래픽은 주겟지...) 도커에 컨테이너 방식으로 올린다 간단한 명령어는 다음과 같다. docker run -p 4200:4200 -e SIAB_PASSWORD=xyz678abc -e sspreitzer/shellinabox:latest 4200번 포트로 접속가능하며 접속아이디는 guest 암호는 xyz678abc 위와같이 실행하여 접속하면 된다 나는 도메인을 가지고 있어서 서브도메인에 연결하였다. 접속하고 이 쉘에서 다른쉘로 ssh로 접속하여 사용하면 된다. 끝. ps. 정말 급할때만 사용하는걸 추천한다. 참고자료 더보기 h..

docker 출석체크 자동화 3탄 스케줄링-리눅스 크론탭

이전글. 더보기 https://myharu.tistory.com/218 Docker 가지고 놀기 1탄 - 웹 크롤링(docker,python,selenium 등등) 일단 1탄이다. 시작은 반이니까.. 흐름은 이렇다. 도커로 만든 크롤러가 특정사이트에서 특정 상품이 있는지 체크하고 있으면 텔레그램으로 알려주는 기능이다. 일단 도커파일 만들기 FROM python:3 myharu.tistory.com https://myharu.tistory.com/219 출석체크 셀레니움 도커 이전작업 1일차 함수들 만들어두기 원래는 윈도우에 스케쥴링으로 구성해놨었다.. 근데 윈도우서버가 노후되고 실행이 잘안되서 도커로 이전작업을 한뒤에 클라우드에 도커 컨테이너 방식으로 올려볼 예정이다. 현재 작업된 소 myharu.tis..

docker 출석체크 자동화 3탄 스케줄링-시놀로지 작업스케줄러

이전글. 더보기 https://myharu.tistory.com/218 Docker 가지고 놀기 1탄 - 웹 크롤링(docker,python,selenium 등등) 일단 1탄이다. 시작은 반이니까.. 흐름은 이렇다. 도커로 만든 크롤러가 특정사이트에서 특정 상품이 있는지 체크하고 있으면 텔레그램으로 알려주는 기능이다. 일단 도커파일 만들기 FROM python:3 myharu.tistory.com https://myharu.tistory.com/219 출석체크 셀레니움 도커 이전작업 1일차 함수들 만들어두기 원래는 윈도우에 스케쥴링으로 구성해놨었다.. 근데 윈도우서버가 노후되고 실행이 잘안되서 도커로 이전작업을 한뒤에 클라우드에 도커 컨테이너 방식으로 올려볼 예정이다. 현재 작업된 소 myharu.tis..

Docker 출석체크 이사가기 2차 출석체크 만들기

이전글. https://myharu.tistory.com/218 Docker 가지고 놀기 1탄 - 웹 크롤링(docker,python,selenium 등등) 일단 1탄이다. 시작은 반이니까.. 흐름은 이렇다. 도커로 만든 크롤러가 특정사이트에서 특정 상품이 있는지 체크하고 있으면 텔레그램으로 알려주는 기능이다. 일단 도커파일 만들기 FROM python:3 myharu.tistory.com https://myharu.tistory.com/219 출석체크 셀레니움 도커 이전작업 1일차 함수들 만들어두기 원래는 윈도우에 스케쥴링으로 구성해놨었다.. 근데 윈도우서버가 노후되고 실행이 잘안되서 도커로 이전작업을 한뒤에 클라우드에 도커 컨테이너 방식으로 올려볼 예정이다. 현재 작업된 소 myharu.tistory..

728x90
반응형