목록Tools (7)
DS's TechBlog

1. 배경 Docker 환경에서 Jenkins를 컨테이너로 운영하면서 외부에서 Nginx를 통해 대시보드에 접근하고자 했습니다. Jenkins가 기본 루트(/)에서 동작하고 있었기 때문에, Nginx에서 /jenkins 경로로 요청을 전달하면 URL 경로 불일치 문제로 인해 404 에러 및 페이지 깨짐 현상이 발생했습니다. 2. 초기 설정과 문제점(1) Nginx 설정location /jenkins/ { proxy_pass http://jenkins:8080; # Jenkins는 루트 컨텍스트에서 실행 중 proxy_redirect default; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; pr..

docker build -f Dockerfile-my-jenkins -t myjenkins-docker:2.502 .이번 글에서는 Jenkins를 Docker 컨테이너로 운영하면서, 파이프라인에서 docker build, docker push 등의 명령어를 실행할 때 겪었던 문제와 그 해결 과정을 공유하려 합니다. 제가 직접 겪은 문제 해결 과정을 중심으로 작성하겠습니다. Connecting Jenkins Docker Container to the Host’s Docker Daemon | Linux 글을 참고하였습니다. 배경Jenkins 파이프라인을 이용해 Docker 이미지를 빌드하고 Docker Hub에 푸시하려 할 때, 아래와 같은 두 가지 문제가 발생했습니다.Docker CLI 미포함 문제기본 J..

최근 Jenkins 파이프라인을 활용하여 Docker 이미지를 빌드하고 Docker Hub에 푸시하는 과정에서 "requested access to the resource is denied" 에러가 발생했습니다. 이를 해결하는 과정에서 네임스페이스 설정 누락이 문제였음을 확인하였습니다. 이번 글에서는 해당 문제 상황과 해결 과정을 공유하고자 합니다. 문제 상황Jenkins 파이프라인 내에서 Docker 이미지를 빌드한 후, 아래와 같은 명령어를 통해 Docker Hub에 이미지를 push하였습니다.docker.withRegistry('', 'docker-hub') { docker.image(env.APP_IMAGE).push() docker.image(env.APP_IMAGE).push('la..

Windows 환경에서 Docker Compose를 사용하여 Spring Boot 애플리케이션과 OpenVidu 서버를 연동하는 과정에서 네트워크 설정 문제로 인해 연결이 되지 않는 문제가 발생했습니다. 이 문제를 해결하기 위한 과정을 공유하고자 글을 작성하였습니다. 문제 상황 Spring Boot 애플리케이션을 Docker Compose로 실행하면서 OpenVidu 서버와 연동하려고 시도했습니다. 아래는 `docker-compose.yml` 파일의 설정입니다.services: spring-app: build: context: . # Dockerfile이 위치한 폴더 dockerfile: Dockerfile.local # Spring Boot Dockerfile 이름 p..

Windows 환경에서 Docker Desktop을 사용하면서 `network_mode: host` 설정이 제대로 적용되지 않는 문제가 발생했습니다. 이 문제를 해결하기 위한 과정을 공유하고자 글을 작성하였습니다.문제 상황services: spring-app: build: context: . # Dockerfile이 위치한 폴더 dockerfile: Dockerfile.local # Spring Boot Dockerfile 이름 network_mode: host docker-compose.yml 파일을 위와 같이 설정했음에도 불구하고, 컨테이너가 호스트 네트워크를 사용하지 않아 포트 접근에 문제가 발생했습니다. Docker 공식 문서 참고 Docker의 공식 문서에 따..

Docker를 사용했을 때, Ubunt에서 ufw를 이용하여 특정 포트로의 접속을 막지 못하는 문제가 발생하였습니다. 이에 대한 해결방법을 공유하고자 글을 작성하였습니다.문제 상황클라이언트가 도메인을 입력했을 때, http와 https의 기본 포트인 80, 443을 통하여 API 서버를 접근할 수 있도록 구성했습니다. 하지만, "서. 버. 주. 소:8000"로 직접 접근이 되는 문제가 발생했습니다. 현재 Nginx를 이용하여 https를 구성하고 있는데, 이렇게 되면 http로 서버로의 접근이 가능하므로 보안 문제가 발생할 수 있습니다. ufw로 해결?Linux의 ufw로 특정 포트로의 접근을 막으려 했습니다.sudo ufw deny 8000sudo ufw deny 8000/tcpsudo ufw stat..

기능 추가/변경 시 자동으로 프로젝트를 빌드하여 Docker Hub에 이미지를 올리는 방법에 대해서 알아보겠습니다.배경프론트엔드 개발자와의 기존 협업 방식이 번거로워 도입하게 되었습니다. 기존 방식에 대해서 먼저 설명드리겠습니다. 백엔드 기능이 완성되면 프로젝트를 build 하고, jar 파일을 프론트엔드 개발자에게 넘겨줍니다.프론트엔드 개발자는 docker-compose.yml, Dockerfile.yml와 함께 docker-compose up --build 명령어로 이미지를 생성하고, 도커 컨테이너를 띄웁니다.백엔드 API를 로컬에서 테스트할 수 있게 됩니다.비용문제로 개발 서버를 따로 두지 않고, Docker를 이용해 로컬에서 백엔드 API를 테스트하도록 했습니다.하지만, 이 방식에는 크게 3가지..