[Docker] Web App을 Docker Image로 빌드하기
DevOps/Docker2022. 5. 12. 22:58[Docker] Web App을 Docker Image로 빌드하기

✔️ Web App Golang의 net/http 패키지를 이용해 Web App을 만들어보자 Writing Web Applications - The Go Programming Language net/http package : Web App을 만들 때 사용하는 패키지 //go:build ignore package main import ( # 패키지를 추가하는 부분 "fmt" "log" "net/http" # 웹 서버 작동을 위한 패키지 ) # HandleFunc()가 호출 func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:]) } func main() { http.H..

[Docker] Golang App을 Docker Image로 빌드하기
DevOps/Docker2022. 5. 12. 22:33[Docker] Golang App을 Docker Image로 빌드하기

✔️ Golang https://go.dev/doc/tutorial/getting-started ✔️ Golang 특징 Golang은 고속의 퍼포먼스를 내야하는 프로그램을 만들 때 사용한다. Go의 가장 큰 특징은 병렬처리가 매우 쉽다는 것이다. 병렬처리를 위해서는 2개 이상의 프로세스의 동기화라는 챌린지가 있다. Go는 고루틴을 통해 오버헤드가 거의 없는 병렬 처리 로직을 간단한 문법으로 구현할 수 있다. Go는 pointer가 있다. 컴파일 언어지만 컴파일 속도가 매우 빠르다는 장점이 있다. c언어는 gcc를 이용해서 실행 파일을 만들지만 go는 실행 파일을 만들지 않고 script 언어처럼 작동한다. ✔️ Golang App 개발 환경 준비 (djangoapp) vagrant@docker  ~/g..

[Docker] Django App을 Docker 이미지로 빌드하기
DevOps/Docker2022. 5. 12. 21:20[Docker] Django App을 Docker 이미지로 빌드하기

✔️ Django Getting started with Django | Django (djangoproject.com) Writing your first Django app, part 1 | Django documentation | Django (djangoproject.com) Djnago는 풀스택 웹 프레임워크이다. ✔️ Django App 개발 환경 준비 mkdir ~/python/hello-django cd ~/python/hello-django python3 -m venv djangoapp . djangoapp/bin/activate 가상 환경 생성 및 가상 환경 activate ✔️ Django 패키지 설치 (djangoapp) vagrant@docker  ~/python/hello-djan..

[Docker] Flask App을 Docker 이미지로 빌드하기
DevOps/Docker2022. 5. 12. 20:34[Docker] Flask App을 Docker 이미지로 빌드하기

✔️ Flask https://flask.palletsprojects.com/en/2.1.x/ Flask란 ? ✅ Flask란 무엇인가 ?! 핵심만 말하자면 간단한 웹 사이트 또는 간단한 API 서버를 만드는 데 특화되어 있는 Python (Micro) Web Framework이다. 클라우드 컴퓨팅의 발달로 Docker, K8s 와 접목해 소규모 컨테 nice-engineer.tistory.com ✔️ pip 설치 pip - python package 관리 도구 python 라이브러리, 실행 파일을 모아놓은 것이 python package이며 이를 관리하는 도구가 pip이다. Installation — Flask Documentation (2.1.x) (palletsprojects.com) vagrant..

[Docker] multistage-build (멀티 스테이지 빌드)
DevOps/Docker2022. 5. 12. 00:17[Docker] multistage-build (멀티 스테이지 빌드)

✔️ C Language 컴파일 : C, C++, Golang, Rust Java : 컴파일을 하지만 바이트 코드를 만들어낸다. CPU가 바로 알아들을 수 없다. JVM에 의해 해석된다. .NET(C#) - .NET 프레임 워크 컴파일 과정을 통해 실행 파일을 만들어줘야 한다. CPU가 바로 실행할 수 있는 실행 파일을 만들기때문에 속도가 매우 빠르다. 스크립트 : Shell, Perl, Python, Ruby, Javascript 인터프리터/런타임 이 필요하다. 소스코드 그대로를 실행하며 인터프리터가 실시간으로 해석하여 커널에게 넘기고 CPU에게 넘긴다. #include int main() print("Hello C World\n"); return 0; } 소스 코드를 바로 실행할 수 없다. 컴파일해서..

[Docker] Alpine Linux (알파인 리눅스)
DevOps/Docker2022. 5. 11. 21:55[Docker] Alpine Linux (알파인 리눅스)

✔️ Alpine Linux Busybox + APK(패키지 관리자) 패키지 인덱스 apk update 패키지 검색 apk search 패키지 추가 apk add 패키지 제거 apk del 다음 세개의 python official image를 비교해보자 vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-buster vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-slim-buster vagrant@docker  ~/image-build/myweb-ubuntu  docker pull python:3.9-alpine vagrant@docker  ~/imag..

image