Jenkins
(도커가 설치되어있다고 가정)
- 젠킨스 레포 다운
docker pull jenkins/jenkins
(초기설정 : 다음 공식 사이트 명령어 따르기 : https://github.com/jenkinsci/docker/blob/master/README.md)
- Jenkins 서버를 도커 컨테이너로 실행하면서, 웹 인터페이스(8080 포트)와 에이전트 통신(50000 포트)을 위해 포트를 열고, 실패 시 자동으로 다시 시작하도록 설정
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11
- Jenkins 서버를 도커 컨테이너로 실행하면서, 웹 인터페이스와 에이전트 통신을 위해 포트를 열고, 컨테이너가 비정상 종료되면 자동으로 재시작하며, Jenkins 데이터를 호스트의 jenkins_home 디렉토리에 저장하여 데이터가 안전하게 유지되도록 함.
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
- Jenkins 서버를 백그라운드에서 실행하며, 호스트의 8080과 50000 포트를 연결하고, 컨테이너 이름을 jenkins-server로 지정하여 관리가 편리하도록 설정하고, 컨테이너가 비정상 종료되면 자동으로 재시작하도록 설정
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11
(실행)
- Jenkins 서버를 백그라운드에서 실행하면서, 중요한 데이터는 jenkins_home 디렉토리에 저장하여 유지하고, 웹 인터페이스와 에이전트 통신을 위해 8080과 50000 포트를 열어둠. 컨테이너가 비정상 종료되면 자동으로 재시작되며, jenkins-server라는 이름으로 컨테이너를 관리할 수 있게 함.
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk11
-> 컨테이너 아이디 출력됨
(실행 확인)
docker ps로 프로세스가 정상적으로 작동하는지 확인 : status에 up상태임을 확인
(초기 비번 확인)
docker logs 컨테이너 이름(or 컨테이너 아이디)
-> 초기 비번 출력됨 (젠킨스 웹사이트 접근할 때 필요하므로 따로 메모)
(접속 후에는 웹사이트에서 하라는거 따라서 하면 됨)
http://localhost:8080 로 젠킨스 접속
로그인 후 플러그인 설치
관리자 계정 생성
-> 젠킨스 사용 가능
(웹사이트 내 : Jenkins 관리 > tools > JDK installations)
jdk 경로 : 터미널에서 구할 수 있음
- 관리자 접속
docker exec -itu 0 컨테이너 이름 /bin/bash
- 경로 알기
env
-> java_home 경로가 jdk 경로임
Spring
jar 파일 생성 : (우측)gradle > tasks > build > bootjar 클릭
(project 폴더) > build > libs : jar파일 생성된 곳 -> Dockerfile 생성 : 이름도 확장자 없이 "Dockerfile"라고 적어야함
* dockerfile 구성 ex.
FROM openjdk:11
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
도커파일이 있는 곳으로 터미널 위치 이동 (cd)
이미지 빌드 : docker build -t 이미지명 빌드위치(보통 현재위치(.))
빌드 완료 후 생성되었는지 확인 : docker images
컨테이너 실행 : docker run -d -p 호스트포트:컨테이너포트 이미지명
또는 이미지 실행 : docker run -it 이미지명
Flutter
프로젝트의 루트 디렉토리에 도커파일(Dockerfile) 생성 : 이름도 확장자 없이 "Dockerfile"라고 적어야함
* dockerfile 구성 ex.
# Stage 1: Build the Flutter web app
FROM cirrusci/flutter:stable as build
# Set the working directory
WORKDIR /app
# Copy the Flutter project files to the Docker container
COPY . .
# Enable web support in Flutter (optional, only if it's a web project)
RUN flutter config --enable-web
# Fetch dependencies
RUN flutter pub get
# Build the Flutter web app
RUN flutter build web --release
# Stage 2: Serve the Flutter web app using an HTTP server
FROM nginx:alpine
# Copy the built web files to the Nginx HTML folder
COPY --from=build /app/build/web /usr/share/nginx/html
# Expose port 80 for the web server
EXPOSE 80
# Start Nginx server
CMD ["nginx", "-g", "daemon off;"]
도커파일이 있는 곳으로 터미널 위치 이동 (cd)
이미지 빌드 : docker build -t 이미지명 빌드위치(보통 현재위치(.))
빌드 완료 후 생성되었는지 확인 : docker images
컨테이너 실행 : docker run -d -p 호스트포트:컨테이너포트 이미지명
또는 이미지 실행 : docker run -it 이미지명
참고
Docker 컨테이너로 Jenkins 설치하기
docker desktop 설치 도커 환경에서 젠킨스를 사용할 것이기 때문에 도커를 우선 설치해준다. docker pull jenkins/jenkins 명령어를 통해 jenkins 계정의 jenkins repository를 다운로드 받는다. 그 후 깃헙 공식사
velog.io
[Docker] 도커에 Spring Boot 구축하기
목차 1. Spring Boot 코드 작성 2. jar 파일 생성 3. Dockerfile 만들기 4. 컨테이너 실행하기 1. Spring Boot 코드 작성 간단한 Hello World 코드를 구현했다. 소스코드는 다음과 같다. package hello.hellospring; import org
da2uns2.tistory.com
1. 설정_Flutter와 Bootstrap을 활용한 크로스 플랫폼 웹 개발
'Docker 설치 및 기본 실습'과 'Flutter 환경 설정'으로 진행된다 Docker 설치 및 기본 실습 1. Docker 설치(for window)> Docker 공식 웹사이트에서 Docker Desktop for Windows 설치파일을 다운로드하기 https://docs.doc
tiny-immj.tistory.com
'DevOps' 카테고리의 다른 글
지속적 통합 (Continuous Integration, CI) (1) | 2024.11.01 |
---|---|
Cloud Service (3) | 2024.10.31 |
모놀리스 아키텍처 vs. 마이크로서비스 아키텍처 (1) | 2024.10.06 |
클라우드 네이티브 마이크로서비스 (Cloud Native Microservices) (1) | 2024.10.06 |
행동 주도 개발(BDD, Behavior-Driven Development) feat.TDD (0) | 2024.10.06 |