본문 바로가기

Server71

E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. 2년 전에 마지막으로 빌드했던 docker file을 빌드하려고 했더니 아래와 같은 에러가 발생했다. E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. debian에서 저장소 repo가 업데이트 되었고, 이전 저장소는 삭제가 되어 발생한 에러였다. 아래와 같이 해당 위치에 있는 list 파일에서 저장소 url을 수정해 주자. /etc/apt/sources.list 기존 deb http://deb.debian.org/debian stretch main deb-src http://deb.debian.org/debian stretch main deb h.. 2023. 9. 11.
dockerfile에 pythonpath를 환경 변수로 잡기 ENV PYTHONPATH "${PYTHONPATH}:[추가할 경로]" 2023. 1. 7.
우분투에 python3.10 설치하기 ubuntu docker image를 다운 받아서 해당 이미지에 python3.10을 설치하려고 한다. 아래는 python3.10을 설치하는 docker file FROM ubuntu:18.04 RUN mkdir -p /app WORKDIR /app RUN apt-get update RUN apt-get install -y git build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev liblzma-dev # python 설치 RUN wget https://www.python.org/ftp/python/3.10.9/Py.. 2023. 1. 6.
Bad Substitution $> ./test.sh alpine으로 만든 docker 컨테이너 내에서 위와 같이 실행하면 bad substitution이란 에러가 발생하며 실행이 안된다. bad substitution의 경우 shell이 다른 경우에서 호환성 문제로 발생하는 에러 메시지로 위의 경우는 아래와 같이 bash shell로 실행해주면 정상적으로 동작한다. $> bash test.sh 2023. 1. 5.
dockerfile로 container 생성 시 container를 계속 띄우기 dockerfile로 image를 만들고 생성된 image를 컨테이너로 만드는 과정에서 컨테이너 내에 직접 들어가서 디버깅을 해야 하는 경우가 종종 발생한다. 하지만 이렇게 컨테이너에 접속하기 위해서는 컨테이너가 종료하지 않고 계속 떠 있어야 하는데 dockerfile 에서 cmd 명령을 아래와 같이 주면 컨테이너가 종료하지 않고 계속 떠 있는 상태를 만들 수 있다. FROM python:3.8-slim CMD ["tail", "-f", "/dev/null"] /dev/null은 리눅스의 null device로써 입력되는 모든 데이터를 EOF로 보내는 역할을 한다. 해당 null device 파일을 계속 tail을 검으로써 해당 container가 종료되지 않고 계속 살아있게 둘 수 있다. 이 외에서 무.. 2023. 1. 4.
docker file 내에서 git 특정 branch 클론하고 싶을 때 docker file 작성 중 github으로부터 특정 소스를 클론해야 하는 작업이 필요했다. 그래서 아래와 같이 작성. FROM python:3.7-slim RUN mkdir -p /app WORKDIR /app RUN apt-get update RUN apt-get -y install git RUN git clone https://github.com/test.git WORKDIR /app/test RUN git checkout feature_1 RUN pip install --upgrade pip RUN pip install -r requirements.txt CMD [ "python", "test.py"] 하지만 위와 같이 실행시키니깐 git checkout 하는 부분에서 아래와 같은 에러가 발생한.. 2023. 1. 3.
Improving Kubernetes and container security with user namespaces 원문 주소 : https://kinvolk.io/blog/2020/12/improving-kubernetes-and-container-security-with-user-namespaces/ Kinvolk: Improving Kubernetes and container security with user namespaces Improving Kubernetes and container security with user namespaces kinvolk.io What are user namespaces? Linux 상의 컨테이너는 네임스페이스, cgroup 그리고 다른 linux 기본 요소를 기반으로 한다. Linux API는 다양한 종류의 네임스페이스들을 제공하며 해당 네임스페이스들은 각각 os 시스템의 특.. 2021. 12. 20.
The Curious Case of Pid Namespaces And How Containers Can Share Them 원문 url https://hackernoon.com/the-curious-case-of-pid-namespaces-1ce86b6bc900 The Curious Case of Pid Namespaces | Hacker Noon hackernoon.com 네임스페이스는 리눅스 컨테이너의 기본적인 컴포넌트 중의 하나이며, 공유 자원의 격리를 제공한다 : 각각의 애플리케이션에 대해 시스템 상에서 그들만의 고유한 공간을 제공한다. 네임스페이스 덕분에 각각의 docker 컨테이너는 각각의 파일시스템과 네트워크를 가지고 있는 것처럼 보인다. 리눅스는 많은 release를 거쳐 점진적으로 네임스페이스 지원을 추가했다. 이러한 점진적인 변화로 인해, 네임스페이스의 각 타입은 고유의 해결과제를 가지고 있다. 특히 Pid.. 2021. 12. 17.
A Deep Dive into Iptables and Netfilter Architecture Iptables과 Netfilter에 대한 이해를 위해 아래의 url을 번역했다. https://www.digitalocean.com/community/tutorials/a-deep-dive-into-iptables-and-netfilter-architecture A Deep Dive into Iptables and Netfilter Architecture | DigitalOcean Firewalls are an important tool that can be configured to protect your servers and infrastructure. In the Linux ecosystem, iptables is a widely used firewall tool that interfaces wit.. 2021. 12. 1.