현재 필자 회사 PC의 OS는 윈도우다.


Spring boot를 이용해 개발하였고 com.spotify의 docker-maven-plugin를 통해 도커 이미지를 빌드하고자 했다.


증상은 maven clean package docker:build 명령어를 통해 이미지를 빌드하려고 하면 아래 화면에서 더 이상 진행이 되질 않는다.



걸어놓고 밥먹고 와도 그대로다. 에러메시지도 없다. 그냥 저 상태도 하염없이 멈춰있다...


폭풍 구글링을 하고, 도커데스크탑을 지웠다 다시 깔아도 보고 별 난리를 다 쳤지만 해결이 되지 않았다.

포기하려던 찰나, 플러그인이 아니라 도커 명령어로 라도 이미지를 빌드해보자라는 생각이 들었다.

그리고 그 때 발생한 에러메시지를 통해 위 증상의 원인을 알아냈다...


이미지명에 대문자 쓰면 안된단다...


혼돈의 카오스. 날려버린 나의 시간.

도커 플러그인 개발자는, 왜 에러메시지가 나오게 개발하지 않은 것이냐...


부디 이 글이 나와 같은 삽질을 하는 사람에게 한 줄기 빛이 되길 바란다.

자바를 사용할 때는 Calendar나 LocalDateTime 클래스 등을 이용하면 쉽게 날짜를 더하고 뺄 수 있다.

자바스크립트에서는 어떻게 하는 지에 대한 내용을 정리해본다.


아래와 같이 get / set 함수를 적절히 사용하면 된다.


var today = new Date(); // 오늘

var yesterday = new Date(today.setDate(today.getDate() - 1)); // 어제


today = new Date(); // 오늘

var tomorrow = new Date(today.setDate(today.getDate() + 1)); // 내일


이 방법을 알아보면서 걱정했던 건, today를 1월 1일이라고 했을 경우, today.getDate() - 1 = 0  이 된다. today를 12월 31일로 했을 경우에도 이와 비슷한 상황이 벌어진다. 다행히도 자바스크립트는 이런 값이 setter에 들어올 경우 적절히 알아서 날짜를 계산해준다.


var x = new Date('2020-01-01'); // 2020년 1월 1일

new Date(x.setDate(x.getDate() - 1)); // Tue Dec 31 2019 09:00:00 GMT+0900 (대한민국 표준시)

x = new Date('2020-12-31'); // 2020년 12월 31일 

new Date(x.setDate(x.getDate() + 1)); // Fri Jan 01 2021 09:00:00 GMT+0900 (대한민국 표준시)


달에 대해서도 사용할 수 있으면 좋으나 달의 경우 이와 같은 방법이 불가능하다.

밑의 예시를 보자.


var x = new Date('2020-01-31'); // 2020년 1월 31일

new Date(x.setMonth(x.getMonth() + 1)); // Mon Mar 02 2020 09:00:00 GMT+0900 (대한민국 표준시)


위에서 x.getMonth()의 결과는 1월을 뜻하는 0이 나온다.(달은 0 ~ 11) 따라서 setMonth(1)이 될 것이고 2020년 2월 31일이 될텐데 2월에 31일은 없으므로 3월 2일이라는 값이 나와버린다.

테스트를 위해 아래와 같이 test라는 파일을 생성한다.



아래와 같이 echo [추가할 문자열] >> [문자열을 추가할 파일명] 형태로 명령어를 입력한다.



추가 후 아래와 같이 파일이 변경된다.


타시스템의 라이브러리를 사용하는 작업을 하던 중 아래와 같은 에러메시지를 만났다.


java.lang.UnsatisfiedLinkError: libf_fcwpkg_jni.so libf_fcwpackager.so : cannot open shared object file : No such file or directory


구글링 결과, 의존성이 걸린 파일이 존재하지 않아서라는데 아래와 같이 의존성을 확인해봤다.



또 구글링을 해보니, so 파일간의 링크를 위해선 so파일들의 위치를 /etc/ld.so.conf에 추가해줘야한다고 한다. 아래와 같이 추가했다.



추가한 파일 위치의 so파일들이 바로 적용되기 위해선 ldconfig이라는 명령어를 입력해줘야한다.


- 참고- 

https://m.blog.naver.com/PostView.nhn?blogId=dae0park&logNo=221040790681&proxyReferer=https:%2F%2Fwww.google.com%2F

https://m.blog.naver.com/PostView.nhn?blogId=xoonho&logNo=40094512499&proxyReferer=https:%2F%2Fwww.google.com%2F

+ Recent posts