- @참고: seul96.tistory.com/133
- @참고: docs.docker.com/get-started/07_multi_container/
DB 데이터를 local에서 가져오거나 local로 공유하기.
local src 데이터를 container와 공유해서 local src 수정 시 바로 container 에 반영하기.
두 경우 모두 cli에서는 -v, docker file에서는 volume을 사용하면 된다.
- Dockerfile.share.src -> 소스 공유
FROM node:12-alpine
RUN apk add --no-cache python g++ make
WORKDIR /app
COPY app/package.json app/yarn.lock ./
#COPY app/spec ./spec
#COPY app/src ./src
#RUN yarn install --production
RUN yarn install
#CMD ["node", "src/index.js"]
##########################################
Build & Run Code
##########################################
#docker build -t getting-started-share-src -f Dockerfile.share.src .
#docker run -dp 3001:3000 -v "$(pwd)\app:/app" getting-started-share-src sh -c "yarn run dev"
- Dockerfile -> DB 데이터 공유
FROM node:12-alpine
RUN apk add --no-cache python g++ make
WORKDIR /app
COPY app/package.json app/yarn.lock ./
COPY app/src ./src
RUN yarn install --production
CMD ["node", "src/index.js"]
##########################################
Build & Run Code
##########################################
#docker build -t getting-started-prod .
#docker run -dp 3000:3000 -v "$(pwd)\todo-db:/etc/todos" getting-started-prod
Caused by: java.net.NoRouteToHostException: Host is unreachable (0) | 2022.11.08 |
---|---|
[Docker] 도커 컨테이너의 종료 코드(exit code) 확인하기 (0) | 2022.11.07 |
[Docker, Compose] Networking in Compose (0) | 2022.03.18 |
[Docker] window cmd 상에서 -v volume file exists 에러 (0) | 2021.04.07 |
Docker version 20.10.5, build 55c4c88
Error response from daemon: error while creating mount source path '/run/desktop/mnt/host/f/vsc/getting-started/getting-started': mkdir /run/desktop/mnt/host/f: file exists
window 오른쪽 아래 docker icon 오른쪽 클릭, Restart Docker 하니까 업데이트도 같이 되면서(Update/Restart Docker 인가 그랬다.) 해결됐다.. 뭐지..
Caused by: java.net.NoRouteToHostException: Host is unreachable (0) | 2022.11.08 |
---|---|
[Docker] 도커 컨테이너의 종료 코드(exit code) 확인하기 (0) | 2022.11.07 |
[Docker, Compose] Networking in Compose (0) | 2022.03.18 |
[Docker] Window docker에서 volume 공유 (0) | 2021.04.07 |
* config data 고려 순서(with values from lower items overriding earlier ones)
1. jar 안 application.properties
2. jar 안 application-{profile}.properties
3. jar 밖 application.properties
4. jar 밖 application-{profile}.properties
* application.properties에 추가 속성 override하기
- properties
spring.profile.active=dev,hsqldb
- command line
--spring.profile.active=dev,hsqldb
$MainProject>> git submodule add https://github.com/chaconinc/DbConnector
$MainProject>> git status
[submodule "DbConnector"]
path = DbConnector
url = https://github.com/chaconinc/DbConnector
$MainProject>> git diff --submodule
worspace_dir>> git clone --recurse-submodules https://github.com/chaconinc/MainProject
$MainProject>> git submodule update --init --recursive
$MainProject>> git submodule update --remote DbConnector
$MainProject>> git submodule update --remote --merge DbConnector
$MainProject>> git diff --submodule
$>> git config --global diff.submodule log
$MainProject>> git config -f .gitmodules submodule.DbConnector.branch stable
$MainProject>> git config status.submodulesummary 1
$MainProject>> git log -p --submodule
$MainProject>> git submodule update --init --recursive
$MainProject>> git pull --recurse-submodules
$MainProject>> git config submodule.recurse true
- MainProject 에 기록된 submodule 이력이 현재 push 된 상태가 아닌체로 push 되면 remote 에서 pull 할 때 해당하는 submodule 의 이력이 존재하지 않아 문제가 생길 수 있다.
이를 방지하기 위해 push할 때 --recurse-submodules=[check | on-demand] 옵션을 붙여서 사용하면
MainProject push 전에 submodule 이력이 push 됐는지 체크해서 fail시키거나(check option),
MainProject push 전에 submodule을 push 한다(on-demand option).
- 위 command를 git config push.recurseSubmodules [check | on-demand] 로 설정해놓을 수 있다.
1. 아래 명령어로 pull 해 올 시 결과적으로 conflict 가 날 것이다.
$MainProject>> git pull --recurse-submodules
2. MainProject 가 충돌난 건 충돌난 파일을 수정해주면 되며, submodule이 충돌난 건 submodule단에서 merge 처리가 필요하다.
$MainProject>> git diff
diff --cc DbConnector
index eb41d76,c771610..0000000 //eb41d76은 내가 갖고 있는 DbConnector 이력이며, c771610은 remote의 DbConnector 이력이다.
$DbConnector>> git branch try-merge c771610 //현재 작업중인 브랜치는 master 이며, c771610 은 새로운 branch에 따놓는다.
$DbConnector>> git merge try-merge //master에 새로운 브랜치를 병합한다.
- 위 명령어로 merge시 conflit 가 날 것이다. 그럼 충돌 파일을 고친 후 submodule 단에서 commit 해준다.
- 그 후, MainProject 로 돌아가 고친 파일을 commit 해준다.
1. 아래와 같이 submodule foreach 를 이용하여 작업 중인 모든 submodule 에 대하여 한번에 명령어를 실행할 수 있다.
$MainProject>> git submodule foreach 'git stash'
$MainProject>> git submodule foreach 'git checkout -b featureA' //새로운 브랜치 생성 및 switch
- submodule foreach 를 사용하여 MainProject 와 submodule 의 diff를 확인할 수 있다.
$MainProject>> git diff; git submodule foreach 'git diff'
2. submodule 을 자주사용할 때 세팅해야 할 alias는 아래와 같다.
$MainProject>> git config alias.sdiff '!'"git diff && git submodule foreach 'git diff'"
$MainProject>> git config alias.spush 'push --recurse-submodules=on-demand'
$MainProject>> git config alias.supdate 'submodule update --remote --merge'
- git config --global 을 통해 전역으로 alias를 설정할 수 있다.
submodule 을 다룰 때 실수할만한 부분이 꽤 많다는 생각이 든다.
개인적으로 git clone --recurse-submodule은 편리한 것 같지만,
특히 push할 때 submodule에 대한 push 없이 MainProject를 push 해버려 이력을 찾지 못하게 하는 경우를 방지하기 위해
config spush 로 설정해두고 주의해서 사용해야 하며,
git config submodule.recurse true를 설정해 놓아 실수를 방지해야 할 것 같다.
[Git] .gitignore 특정 파일 또는 폴더 제외 / 무시하기 (1) | 2023.12.06 |
---|---|
[Git] branch naming (0) | 2022.09.21 |
[Git] git bash, Sourcetree 와 함께 git 을 배울 수 있는 Docs (0) | 2022.08.04 |
[Git] detached head 에서 commit 후 다른 branch 로 checkout 한 경우 lost commit hash 보기 및 해결 방법 (0) | 2022.07.29 |
[Git, Eclipse] git pull 하는 방법 (충돌 다루기) (0) | 2021.06.24 |
[Intellij 단축키]
Auto-completion for Spring is an Ultimate feature.
- Run a class with a main() method: shift + f10
- Re-run applications: "
- Stop a program: ctl +f2
- Settings: ctl + alt + s
- doc 보기: ctl + q
- fix error: f2
- Go to declaration: ctl + b
- System.out.println() 자동완성: sout + tab
- 한줄 지우기: ctl + y
- 한줄 복사: ctl + d
- 줄단위 이동: shift + alt + 위아래
- 특정 문자열 검색: ctl + shift + f
- 다중 커서: alt + 마우스 왼쪽 키 드래그
- import 정리: ctl + alt + o
- test class 생성: 클래스명에 마우스 위치 후 alt + enter
- test method 생성: alt + insert
- test 실행: ctl + shift + f10
- try catch 생성: 감쌀 코드 블럭 후 ctl + alt + t
- 되돌리기 취소: ctl + shift + z
- 이전커서로 이동: ctl + alt + 왼쪽 오른쪽
- 탭이동: alt + 왼쪽 오른쪽
- 클래스 structure 보기: alt + 7
- 클래스로 가기: ctl + n
- 변수명바꾸기: shift + f6
- 터미널 창 띄우기: alt + f12
- replace word: ctl + r
- 구현 클래스로 가기: ctl + alt + click
- refactor: ctl + shift + alt + t
- find action: ctl + shift + a
- search everywhere: shift + shift // command를 찾을 땐 /로 시작하면 됨
- 코드 완성 후 엔터: ctl + shift + enter
- 참고 정보 보기: alt + enter
- 프로젝트 구조 <-> 코드화면 전환: alt + 1
- View most recent file: ctl + e
- run anywhere: ctl + ctl
- extend selection: ctl + w (확장) / ctl + shift + w (축소)
- format: ctl + alt + l
- @참고: codechacha.com/ko/java-convert-localdatetime-to-timestamp/
- @참고(LocalDateTime 시간 더하기): jekalmin.tistory.com/entry/%EC%9E%90%EB%B0%94-18-%EB%82%A0%EC%A7%9C-%EC%A0%95%EB%A6%AC
LocalDateTime <-> Timestamp
LocalDateTime localDateTime = LocalDateTime.now(); //2019-10-31T08:45:54.874
// LocalDateTime -> Timestamp
Timdstamp timestamp = Timestamp.valueOf(localDateTime); //2019-10-31 08:45:54.874
// Timestamp -> LocalDateTime
LocalDateTime localDateTime = timestamp.toLocalDateTime() //2019-10-31T08:45:54.874
LocalDateTime 시간 더하기
LocalDateTime.of(2015, 4, 17, 23, 47, 5).minus(Period.ofWeeks(3)); //(2015년4월17일 23시47분05초 - 3주간) = 2015년3월27일 23시47분05초
[Java] Heap 모니터링 & Heap Dump 분석하기 (1) | 2023.05.10 |
---|---|
[Java] 연산자 우선순위 (0) | 2022.12.18 |
[Java] Set to List, List to Set (0) | 2021.02.25 |
[Java] Optional 사용법 (0) | 2021.02.19 |
[Java] 파일 입출력 (0) | 2021.01.27 |
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate=info
logging.level.org.hibernate.type=trace