🐳 Docker (9) 썸네일형 리스트형 Docker를 활용한 React 프로젝트 배포 (feat. Nginx, Jenkins) Keyworddockerdockerfilecompose(app, db, nginx)nginx(react deploy)nginx(reverse proxy) Dockerfile 만들기 프로젝트 디렉토리 구조: 프로젝트의 루트 디렉토리에 위치 today-space-front/├── package-lock.json├── package.json├── public├── src/│ └── main/│ ├── component│ ├── pages│ └── redux└── Dockerfile Dockerfile 만들기: 검색 keyword → react Dockerfile # 1. Node.js 환경에서 빌드 수행FROM node:14 AS buildWORKDIR /app# pack.. GitHub tag & Docker Image 자동 배포하기 (feat. Jenkins) KeywordGithub release & tagdocker tag 버전 관리를 하는 이유 코드의 백업 및 복구: 버전 관리를 통해 코드의 모든 변경 이력을 저장하고, 필요시 특정 시점으로 쉽게 되돌아갈 수 있습니다. 이는 문제가 발생했을 때 빠른 복구를 가능하게 합니다.변경 이력 추적: 각 커밋마다 어떤 변경이 있었는지 기록되므로, 코드의 진화를 추적할 수 있습니다. 이를 통해 문제의 원인을 파악하고 수정하는 데 도움이 됩니다.협업 및 병합 관리: 팀 내 여러 개발자가 동시에 작업할 때, 각자의 작업 내용을 체계적으로 관리하고 병합할 수 있습니다. 깃에서 태그된 커밋이 특정 브랜치에 푸시 또는 머지될 때, 해당 버전을 명확하게 관리하여 프로젝트의 안정성과 품질을 유지할 수 있습니다. 추가로 고민해보면.. EC2의 Docker 안에 Jenkins Container 올리기 (feat. Webhook CI/CD 구축 & DooD) Keyword1. DooD2. docker network Flow1. 새로운 EC2 인스턴스 생성 -> 젠킨스만2. docker 설치3. docker 컨테이너 젠킨스 실행4. 서브 도메인 세팅5. 젠킨스 Webhook 연결6. 파이프라인 작성 후 배포 확인 EC2 인스턴스 설정 EC2 인스턴스 설정용량: 최소 100GBEC2 인스턴스 생성:AWS 콘솔에 로그인하고 EC2 서비스를 선택합니다."인스턴스 시작" 버튼을 클릭하여 새로운 인스턴스를 생성합니다.Ubuntu AMI를 선택합니다.인스턴스 유형을 선택합니다 (t2.micro는 무료 티어로 사용할 수 있습니다). → t2.medium.키 페어를 설정하고 다운로드합니다.인스턴스를 시작합니다.보안 그룹 설정:SSH (포트 22), HTTP (포트 80).. AWS EC2에 .env 파일로 Docker 환경변수 관리하기 (feat. docker-compose) Keyword1. docker-compose envfile env 파일을 나누는 이유는? 이전의 백엔드 배포 로컬의 인텔리제이에서 docker 이미지를 만들었기 때문에 properties-secrets.yml이 포함되어 이미지가 만들어졌다. 이렇게 되면 public 도커허브에 올려놓은 이미지를 받아서 환경변수를 볼 수 있다. 그럼 보안상 문제가 생긴다. 또한, 환경변수가 도커 이미지에 들어가 있다면 CI/CD에서 환경변수 변경 시 매번 도커 이미지를 다시 만들어서 EC2에서 도커 이미지를 받은 다음 실행시켜야 하는 번거로움이 존재한다. 그래서 추후 CI/CD를 위해서도 환경변수는 분리해 놓아야 관리가 편하기 때문에 env 파일로 분리할 것이다. .env 파일 생성 * 해당 과정은 EC2 인스턴스에서 .. Docker를 활용해 AWS EC2에 Spring Boot 배포하기 (feat. Nginx) Keyworddockerdockerfilecompose(app, db)nginx(react deploy) -> 현재 적용되지 않은 사안nginx(reverse proxy) Docker 이란? 왜 사용할까? (장점)환경 일관성: 개발, 테스트, 프로덕션 환경에서 동일한 컨테이너 이미지를 사용하기 때문에 "내 로컬에서는 잘 돌아가는데..." 같은 문제가 발생하지 않습니다.이식성: 컨테이너는 운영체제에 독립적이기 때문에, 어디에서나 동일하게 동작합니다. AWS, GCP, Azure 등 어떤 클라우드 환경에서도 동일한 컨테이너를 실행할 수 있습니다.신속한 배포: 애플리케이션과 종속성을 하나의 패키지로 묶어 배포하기 때문에, 새로운 환경에서 빠르게 애플리케이션을 배포할 수 있습니다. 핵심 개념컨테이너: 소프트웨.. Jenkins DooD 권한 문제 해결하기 (feat. troubleshooting) 📌 문제 상황Jenkins 내부에 Docker CLI를 설치했으나, 다음과 같은 권한 문제로 인해 Docker 명령어 실행이 불가능했다.ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied 해당 문제는 Jenkins가 Docker 데몬에 접근할 수 있는 권한이 없어서 발생했다. 🤔 고민 및 시도한 내용 1. Jenkins 컨테이너 내부 접속먼저, Jenkins 컨테이너에 .. Docker 설치 (feat. Mac) 2024.07.03.(수)💡 오늘의 학습 키워드- Docker 1주차 -Mac Docker 설치터미널 Docker 설치 warningDocker Desktop Error Mac Docker 설치https://brew.sh/ko커맨드 복사터미널에서 복사한 커맨드 실행설치 후 brew doctor 실행# 사전에 homebrew 설치 필수# docker for mac설치brew install docker docker-compose# docker version 확인docker --version# docker compose version 확인docker-compose --version Install Docker Desktop on MacInstall Docker for Mac to get started. Thi.. Docker Image와 Container 2024.07.02.(화) 💡 오늘의 학습 키워드- docker 1주차 -CI/CD란 무엇인가?Docker 사용 이유Window Docker 설치Container 실행 테스트Docker 이미지Docker Image와 Docker Container의 관계Docker Container 삭제 CI/CD란 무엇인가?: Continuous Integration/Continuous Deployment(Delivery)의 약자로, 지속적인 통합과 지속적인 제공을 의미 기본 개념지속적인 통합(Continuous Integration)지속적인 서비스 제공 (Continuous Delivery)지속적인 배포(Continuous Deployment)단계코드 작성: 개발자들은 소스 코드를 작성하고 저장소(repositor.. 이전 1 2 다음