python 파일 실행
FROM ubuntu:latest
WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
RUN useradd python
USER python
EXPOSE 8080
CMD ["python3", "app.py"]
python compile 후 실행
FROM ubuntu:latest
WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
RUN python3 -m compileall ./app.py
RUN mv ./__pycache__/ ./app.pyc
RUN useradd python
USER python
EXPOSE 8080
CMD ["python3", "app.pyc"]
port가 지정되어 있지 않은 python 파일 실행
FROM ubuntu:latest
WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
RUN useradd python
USER python
CMD ["flask", "run", "--host=0.0.0.0", "--port=8080"]
yum install -y docker
systemctl enable --now docker
usermod -aG docker ec2-user
usermod -aG docker root
chmod 666 /var/run/docker.sock
FROM ubuntu:latest
WORKDIR /app
COPY ./app.py .
RUN apt update -y
RUN apt install -y curl
RUN apt install -y python3-pip
RUN pip3 install flask
RUN useradd python
USER python
EXPOSE 8080
CMD ["python3", "app.py"]
docker build -t <image name> .
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python-ecr latest d32914464f0d 3 seconds ago 476MB
docker run -d -p <port>:<port> <image name>
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63f6a6f90792 python-ecr "python3 app.pyc" 2 seconds ago Up 1 second 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp fervent_bardeen
docker exec -it <container id> bash
curl localhost:8080/health
python@63f6a6f90792:/app$ curl localhost:8080/health
{"status":"ok"}