Docker의 Alpine에서 Bottle 사용

5582 단어 alpine도커
이쪽과 같은 일을 했습니다.
Alpine에서 Bottle 사용

이미지 만들기
docker run -dit -p 49153:3000 --name bottle_app alpine

Alpine에 연결
docker exec -it bottle_app ash
$ docker exec -it bottle_app ash
/ # 

필요한 소프트웨어 설치
/ # apk add python3 py3-pip tree
/ # pip3 install bottle
/ # mkdir /home/bottle
/ # cd /home/bottle
/home/bottle # 

다음 두 파일을 만듭니다.
/home/bottle # tree
.
├── server.py
└── views
    └── sample.html

server.py
from bottle import route, run, template
import random

@route('/')
def index():
    images = [
        "fmervo000001gsle.jpg",
        "rn2ola000000lk6e.jpg",
        "rn2ola000001gogf.jpg",
        "6fujishigai_s_s.jpg",
        "rn2ola000000lk6r.jpg",
        "5fujikawarakuza_s_s.jpg"
        ]

    url_base = "https://www.city.fuji.shizuoka.jp/page/gazou/fmervo000001dsro-img/"
    url = url_base + random.choice(images)

    return template('sample', url=url)
#
run(host="0.0.0.0", port=3000, debug=True)

views/sample.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>富士山</title>
</head>
<body>
<div class="container">
<p>富士山 航空写真</p>
<blockquote>
<img src="{{url}}" />
</blockquote>
<p>Courtesy: <a href="https://www.city.fuji.shizuoka.jp/page/gazou/fmervo000001dsro.html">富士市</a></p>
</div>
Jul/05/2021<br />
</body>
</html>

다음과 같이 호스트에서 복사할 수도 있습니다.
CONTAINER ID는 변경하십시오.
docker cp server.py 01dd1f42040a:/home/bottle
docker cp views 01dd1f42040a:/home/bottle/

CONTAINER ID를 확인하는 방법
$ docker ps -a
CONTAINER ID   IMAGE     COMMAND     CREATED          STATUS          PORTS                                         NAMES
bbe3d679a9c4   alpine    "/bin/sh"   34 minutes ago   Up 34 minutes   0.0.0.0:49153->3000/tcp, :::49153->3000/tcp   bottle_app

서버 시작
# python3 server.py 
Bottle v0.12.19 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:3000/
Hit Ctrl-C to quit.

클라이언트에서
http://localhost:49153/
방문

좋은 웹페이지 즐겨찾기