Alpine Linux v3.11의 EOL이 조금 아픈 사연입니다.
👋v3.11 EOL 되기
2021년 11월 01일 알파인 v3.11. EOL이 된 것 같아요.
🔍Dockkerhub에서 alpine 기반 이미지 업데이트 확인
샘플 노드.js
확인했습니다. 사진처럼 최근 업데이트가 진행됐습니다.
👀docker build 시 변경 사항
docker build에서 의존 관계를 검색하는 alpine의 포장 변경은 다음과 같습니다.
↓
🧑💻컨디션
이번에 사용한 Docker file
FROM node:14.18.1-alpine
# tzdataは一部以外削除する
RUN apk add --no-cache curl tzdata libacl libattr && \
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
apk del --purge tzdata
RUN apk add --no-cache --virtual .build-deps coreutils && \
cp /bin/date /usr/local/bin/date && \
apk del --purge .build-deps
ENTRYPOINT ["sh"]
😇명령이 움직이지 않았다
컨테이너 중에는 지금까지 아래GNUcoreutils의
date
명령이 사용됐다.date +%Y/%m/%d --date '-1 days ago'
2021/11/09
build 이후의 그림에서 이동할 때 다음과 같은 오류가 발생했습니다.date +%Y/%m/%d --date '-1 days ago'
Error loading shared library libutmps.so.0.1: No such file or directory (needed by /usr/local/bin/date)
원인을 찾다
alpine v3.14용 포장에 포함된 coreutils의 버전이 업데이트되었습니다.
v3.14의
coreutils
v3.11의
coreutils
coreutils-8.32-r2의 의존 관계를 자세히 살펴보니 오류 메시지에서 본 봉인과 유사하다.
🎉다 고쳤다
마지막으로 다음과 같이 Docker file을 수정하여 해결합니다.
FROM node:14.18.1-alpine
RUN apk add --no-cache curl tzdata libacl libattr && \
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
apk del --purge tzdata
# utmpsが足りなかった依存パッケージ
RUN apk add --no-cache utmps && \
apk add --no-cache --virtual .build-deps coreutils && \
cp /bin/date /usr/local/bin/date && \
apk del --purge .build-deps
ENTRYPOINT ["sh"]
📚잡담
GNUcoreutils의
date
명령을 사용했기 때문에 이런 해결 방법이 생겼다BusiBox
date
명령을 사용하여 회피할 수도 있습니다.# BusyBox
date -d "1970.01.01-00:00:$(( $( date +%s ) - $(( 24 * 60 * 60 )) ))" +%Y/%m/%d
2021/11/09
# GNU
date +%Y/%m/%d --date '-1 days ago'
2021/11/09
Reference
이 문제에 관하여(Alpine Linux v3.11의 EOL이 조금 아픈 사연입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ammmr/articles/1d07cfad70cdd0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)