Language
sudo apt install gcc
mkdir ~/clang
cd ~/clang
hello.c
#include <stdio.h>
int main() {
printf("Hello C World\n");
return 0;
}
gcc hello.c -o hello
file hello
... dynamically linked ...
ldd hello
linux-vdso.so.1 (0x00007ffcd014b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe1a8ed2000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe1a90d2000)
mkdir -p lib/x86_64-linux-gnu
mkdir lib64
cp /lib/x86_64-linux-gnu/libc.so.6 lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 lib64/
Dockerfile
FROM scratch
COPY lib /lib
COPY lib64 /lib64
COPY hello /
CMD ["/hello"]
docker build -t hello:dynamic .
docker run hello:dynamic
gcc hello.c -static -o helloc
Dockerfile-static
FROM scratch
COPY helloc /
CMD ["/helloc"]
docker build -f Dockerfile-static -t hello:static .
docker run hello:static
Dockerfile-multi
FROM gcc AS cbuilder
WORKDIR /root
ADD hello.c .
RUN gcc hello.c -static -o hello
FROM scratch
COPY --from=cbuilder /root/hello /
CMD ["/hello"]
docker build -f Dockerfile-multi -t hello:multi .
docker run hello:multi
sudo apt install python3-pip python3-venv
mkdir ~/python/hello-flask
cd ~/python/hello-flask
가상환경/프로젝트 생성
python3 -m venv venv
가상환경 활성화
. venv/bin/activate
가상환경 비활성화
deactivate
pip3 install Flask
hello.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
export FLASK_APP=hello
flask run
flask run --host='0.0.0.0' [--port='8080']
pip3 freeze > requirements.txt
pip3 install -r requirements.txt
mkdir ~/python/hello-django
cd ~/python/hello-django
python3 -m venv venv
. venv/bin/activate
pip3 install Django
django-admin startproject mysite
cd mysite
mysite/settings.py
...
ALLOWED_HOSTS = ['*']
...
python3 manage.py runserver 0.0.0.0:8000
curl 192.168.100.100:8000
python3 manage.py startapp polls
polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
python3 manage.py runserver 0.0.0.0:8000
curl 192.168.100.100:8080/polls
pip3 freeze > requirments.txt
.dockerignore
venv/
Dockerfile
.dockerignore
Dockerfile
# For Normal Buster
FROM python:3.9-buster
# For Slim Buster
#FROM python:3.9-slim-buster
#RUN apt update && apt install -y gcc libc6-dev
# For Alpine Linux
#FROM python:3.9-alpine
#RUN apk add gcc musl-dev
COPY . /app
WORKDIR /app
RUN python3 -m venv venv && . venv/bin/activate
RUN pip3 install -r requirments.txt
WORKDIR /app/mysite
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
EXPOSE 8000