//////
Search
📓

11/10 회고록

생성일
2022/11/10 07:23
태그

김기헌

Algorithm

프로그래머스 같은 숫자는 싫어
public int[] solution(int[] arr) { ArrayList<Integer> arrayList = new ArrayList<>(); arrayList.add(arr[0]); for (int i = 1; i < arr.length; i++) { if (arr[i] != arrayList.get(arrayList.size() - 1)) { arrayList.add(arr[i]); } } int[] answer = new int[arrayList.size()]; for (int i = 0; i < arrayList.size(); i++) { answer[i] = arrayList.get(i); } return answer; }
Java
복사
프로그래머스 - 기능 개발
public int[] solution(int[] progresses, int[] speeds) { ArrayList<Integer> arrayList = new ArrayList<>(); int cur = 0, flag = 0; while (cur < progresses.length) { for (int i = cur; i < progresses.length; i++) { if (progresses[i] >= 100) continue; progresses[i] += speeds[i]; } for (int i = cur; i < progresses.length; i++) { if (progresses[i] < 100) break; flag = i + 1; } if (flag != cur) { arrayList.add(flag - cur); cur = flag; } } int[] answer = new int[arrayList.size()]; for (int i = 0; i < answer.length; i++) { answer[i] = arrayList.get(i); } return answer; }
Java
복사

SpringBoot MVC

Docker 배포
루트 디렉토리에 DockerFile 추가
FROM gradle:7.4-jdk11-alpine as builder WORKDIR /build # 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함. COPY build.gradle settings.gradle /build/ RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true # 빌더 이미지에서 애플리케이션 빌드 COPY . /build RUN gradle build -x test --parallel # APP FROM openjdk:11.0-slim WORKDIR /app # 빌더 이미지에서 jar 파일만 복사 COPY --from=builder /build/build/libs/*-SNAPSHOT.jar ./app.jar EXPOSE 8080 # root 대신 nobody 권한으로 실행 USER nobody ENTRYPOINT [ \ "java", \ "-jar", \ "-Djava.security.egd=file:/dev/./urandom", \ "-Dsun.net.inetaddr.ttl=0", \ "app.jar" \ ]
Docker
복사
서버 환경에서 Git clone Repository
Git clone https://github.com/KimKiheon/Springboot-mustache-bbs
Plain Text
복사
Docker 빌드
docker build -t sb-bbs . //. 앞 뒤로 공백
Plain Text
복사
실행
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL=jdbc:mysql:{aws public DNS}:3306 /{Database 명} -e SPRING_DATASOURCE_PASSWORD={DB 비밀번호} sb-bbs
Plain Text
복사
만났던 오류들
김상호

김상호

알고리즘

게시판 만들기

이가현

알고리즘

문제
중복제거 2가지
Set → 순서 확정되지않음.
stream사용
stream
array
stack

게시판 docker를 이용해 서버로 올리기

1.
intellij 에 Dockerfile 만들기
test파일에서 contextLoad() 제거
@SpringBootTest class Bbs5ApplicationTests { @Test void contextLoads() { // 삭제 } }
Java
복사
Dockerfile 파일
FROM gradle:7.4-jdk11-alpine as builder WORKDIR /build # 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함. COPY build.gradle settings.gradle /build/ RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true # 빌더 이미지에서 애플리케이션 빌드 COPY . /build RUN gradle build -x test --parallel # APP FROM openjdk:11.0-slim WORKDIR /app # 빌더 이미지에서 jar 파일만 복사 //bbs5-0.0.1-SNAPSHOT.jar . 와일드카드 COPY --from=builder /build/build/libs/*-SNAPSHOT.jar ./app.jar EXPOSE 8080 # root 대신 nobody 권한으로 실행 USER nobody ENTRYPOINT [ \ "java", \ "-jar", \ "-Djava.security.egd=file:/dev/./urandom", \ "-Dsun.net.inetaddr.ttl=0", \ "app.jar" \ ] //"bbs5-0.0.1-SNAPSHOT.jar" 와일드카드
Java
복사
2.
assemble → git commit
3.
git clone https://github.com/<owner>/<repository>
4.
docker build -t sb-bbs .
5.
실행
도커
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL=jdbc:mysql://<ecs 주소>:3306/<스키마> -e SPRING_DATASOURCE_PASSWORD=password <docker image>
Java
복사
daemon으로 띄우기
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL=jdbc:mysql://<ecs 주소>:3306/<스키마> -e SPRING_DATASOURCE_PASSWORD=password -d <docker image>
Java
복사

임학준

알고리즘

ArrayList를 사용
stack을 사용

도커빌드

1 DockerFile작성
FROM gradle:7.4-jdk11-alpine as builder WORKDIR /build # 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함. COPY build.gradle settings.gradle /build/ RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true # 빌더 이미지에서 애플리케이션 빌드 COPY . /build RUN gradle build -x test --parallel # APP FROM openjdk:11.0-slim WORKDIR /app # 빌더 이미지에서 jar 파일만 복사 COPY --from=builder /build/build/libs/bbs5-0.0.1-SNAPSHOT.jar . EXPOSE 8080 # root 대신 nobody 권한으로 실행 USER nobody ENTRYPOINT [ \ "java", \ "-jar", \ "-Djava.security.egd=file:/dev/./urandom", \ "-Dsun.net.inetaddr.ttl=0", \ "bbs5-0.0.1-SNAPSHOT.jar" \ ]
Java
복사
bbs5-0.0.1-SNAPSHOT부분을 자신이 가지고 있는 jar 파일 이름과 같이 맞춰야한다
2 docker git clone
docker 설치후 git clone으로 자신이 올린 레포지토리를 설치한다
3 docker build
Dockerfile이 있는 경로에가서 명령어
docker build -t (이름지정) 으로 빌드한다
이후 docker images로 확인해서 빌드한 내용이 올라와있으면 성공
이때 mysql이 이미지에 없다면 추가해줘야한다
4 환경변수 넣고 SpringBoot 실행
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL=jdbc:mysql://<ec2주소>:3306/likelion-db -e SPRING_DATASOURCE_PASSWORD=<비밀번호> <빌드이미지이름>
이후<ec2주소>:8080/articles/list로 접속하면 게시판 접속이 가능하다
오류상황
docker built - sb-bbs .
명령어입력후 리토지토리가 none로 뜨는현상
빌드과정에서 기다려야되는데 중간에 멈춘구간에서 다된줄 알고 CTRL+C로 빠져나와서 빌드가 제데로 안된 현상이었다
docker rmi $(docker images -f "dangling=true" -q)
명령어를 통해 사용하지 않는 <none>이미지를 지워주고 다시 빌드해서 성공했다

조국현