반응형 IT 톺아보기/CICD10 제조업 환경에서의 CI/CD 도입기 – GitLab을 활용한 자동화 여정 현재 내가 근무하고 있는 기업은 제조업 분야로, 주로 임베디드 시스템 개발을 진행하며 전통적인 C 언어를 사용하고 있다. 하지만, 개발 환경이 변화함에 따라 자동화와 CI/CD(지속적 통합/지속적 배포)의 필요성이 대두되었다. 이전에는 Jenkins를 활용한 빌드 및 배포 환경을 구축하려 했지만, 생각보다 높은 진입 장벽이 존재했다. 팀 내 CI/CD 적용기현재 내가 다니고 있는 기업은 제조업이다.임베디드 위주의 개발을 진행하다보니 꽤나 고전적인 언어인 C언어를 사용하고 있다. 그러나, 시대가 변하면서 자동화, CI/CD 같은 완전히 발전된 기능ph-biginner.tistory.com “내가 왜 한다고 했을까…” 🤦♂️ Jenkins를 Microsoft Teams와 연동하려 했으나 복잡한 설정과 .. 2025. 1. 20. 제조업 환경에서의 CI/CD 도입기 – Jenkins로 시작하는 자동화 여정 현재 내가 근무하는 기업은 제조업 분야로, 주로 임베디드 시스템 개발을 진행하며 C 언어를 주로 사용하고 있다. 하지만, 시대가 변하면서 나와 TL님의 마음속에는 **자동화와 CI/CD(지속적 통합/지속적 배포)**에 대한 강한 열망이 있었다. 이에 따라, 우리는 **“어렵더라도 해보자!”**라는 마음가짐으로 CI/CD 자동화를 도입하기로 결정했다.(솔직히 말하면… 맨땅에 헤딩하는 느낌이다.) 1. 현재 상황 분석 – 자동화를 위한 우리의 선택지 현재 회사에서는 사내 GitLab을 사용하고 있으며, 서버 PC 1대가 지원된다. 이 환경에서 선택할 수 있는 자동화 방안은 다음과 같다. 1. Jenkins를 서버에 설치하여 CI/CD 환경 구축 2. GitLab의 내장된 CI/CD 기능 활용 우리는 먼저 J.. 2025. 1. 12. compose.yaml 파일을 이용하여 간단한 페이지 만들어보기 | back-end 사실, Back-end라고 해서 Front-end와 큰 차이가 있는 것은 아니다. 대부분 동일한 구성형태로 작성을 하듯이, image, working_dir, volume, ports 등을 작성해준다. 차이가 있다면, Front-end에서는 node Image를 사용했다면 Back-end에서는 nginx Image를 사용한다. 그리고 ports는 8080으로 사용을 하는데 이렇게 사용하는데 있어서는 큰 의미가 있지는 않다. 이전부터 개발자분들이 8080을 port로 사용하게 되면서 일반적으로 사용하게 되었다고 알고 있다. volume은 ./backend 경로에 개발된 내용을 컨테이너에 전달하도록 했는데, 만약 compose.yaml을 실행한 상황에서 해당 폴더에 backend 파일이 없으면 자동으로 생성.. 2024. 1. 7. compose.yaml 파일을 이용하여 간단한 페이지 만들어보기 | front-end 간단한 페이지를 구성하기 위해서 back-end, front-end, nginx, db를 compose.yaml을 통해 구성해보았다.그 중에서 가장 먼저 front-end 부분을 작성해보았다. services를 가장 먼저 작성하고 그 아래에 각각 작성한다. front-end를 먼저 작성을 하면, app-front라는 이름으로 Front-end를 구성했는데, node image를 사용하여 front-end를 구성 npm이나 yarn 같은 명령어들은 app 폴더에서 동작을 하기 때문에, working_dir을 /app으로 설정해준다. 여기서 나는 /usr/src/app으로 설정했다. ports의 경우에는 3000:3000 과 35729:35729로 잡았는데 자세히는 모르지만 일반적으로 Node.js 개발 환.. 2023. 12. 30. Docker Compose의 주요 명령어와 그 사용법 Docker compose 에 대한 명령어를 사용하다 보면 커멘드를 잘 모르는 경우가 있어 정리해보려고 한다. 목차 링크 왜 안됨? build config cp create down events exec images kill logs ls pause port ps pull push restart rm run scale start stop top unpause up version wait watch Docker Compose는 여러 컨테이너를 정의하고 실행하는 도구이다. 이 도구는 YAML 파일을 사용하여 서비스, 네트워크, 볼륨 등을 설정하고 관리한다. 1.build 기능: 서비스를 빌드하거나 재빌드합니다. 사용 예시: docker-compose build는 docker-compose.yml 파일에 정의.. 2023. 12. 28. docker compose Docker Compose란? * 다중 컨테이너 도커 어플리케이션을 정의 하고 실행하기 위한 도구 Redis?? * Remote Dictionary Server의 약자로 메모리 기반의 키-값 구조 데이터 관리 시스템 이다. 비관계형 데이터베이스(NoSql)로 모든 데이터를 메모리에 저장하고 빠르게 조회가 가능 * 메모리에 저장하기 때문에 mysql 같은 것보다 빠르게 불러올 수 있고 영속적인 저장으로 서버를 재부팅 해도 데이터가 남아있다. docker run redis 를 통해 redis를 먼저 구동한다. 이후, 다른 터미널을 통해 docker를 실행하면 이러한 에러를 만나볼 수 있다. 이는 Redis 서버에 연결이 실패 됐다는 의미인데, 이는 서로 다른 컨테이너에서 실행을 시켜서 접근이 가능 하지 않다.. 2022. 6. 4. m1에서 docker mysql 설치하기 기존 터미널에서 mysql을 docker에 실행할 때에는 ‘’’ docker run —name -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true ‘’’ 을 사용 했었는데, 해당 방식으로 m1에서 실행하게 되면 에러가 발생한다. ‘’’ Unable to find image ‘mysql:latest’ locally latest: Pulling from library/mysql docker: no matching manifest for linux/arm64/v8 in the manifest list entries. See ‘docker run —help’. ‘’’ 위의 에러처럼 docker의 mysql은 linux/arm64/v8을 지원하지 않기 때문에 따로 platf.. 2022. 6. 4. 터미널에서 사용 중인 포트 확인 및 종료 방법 docker를 공부하면서 port를 자주 잡는 일이 생기는데 그럴때마다 이를 확인하고 끄는 작업을 자주하게 된다. 그럴때마다 사용법이 생각이 나지 않아 검색하는 경우가 많은데 이참에 블로그에 써놓고 확인하는 법이 좋을 것 같아 글을 작성한다. 터미널에서 특정 포트가 사용되는지 확인하는 명령어는 ₩₩₩ sudo lsof -P -I :[Port] ₩₩₩ 이고 특정 포트를 죽이는 명령어의 경우는 sudo kill -9 [Port]이다. 2022. 5. 30. Mac OS Monterey 이상 포트가 자동으로 잡히는 문제 발생 Volume 도커 컨테이너로 복사를 하는 것이 아니라 참조(mapping)을 하는 방식으로 이용하면 변경이 빠르게 적용이 될 수 있음 Pwd => print working dir 이고 현재 작업 중인 디렉토리를 출력 docker run -d -p 5000:8080 -v usr/src/app/node_modules -v $(pwd):/usr/src/app 로 실행한 결과 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5000 -> 0.0.0.0:0: listen tcp 0.0.0.0:5000: bind: address already in use. 처럼 5000포트가 사용 중이라고 뜬다.. 이걸 해결.. 2022. 5. 29. 이전 1 2 다음 반응형