Streamlit에서 제작한 웹 애플리케이션을 컨테이너화 디자인(Windows 10, Python 3.9, Azure Container Registry)
가장 가까운 버스 정류장에서 버스가 몇 분 남았다는 것만 나왔어요.
가장 가까운 버스 정류장에는 버스가 몇 분 남았다는 것만 표시되어 있는데, 가장 많이 쓰이는 것은 #구마모토#MaaS#M5Stack#GTFSpic.twitter.com/pjmSrhtCe0-천원@대사웅본(@sotongshi)December 16, 2021이다.
Streamlit에 대응하기 때문에
완성--pic.twitter.com/JEjrJ316bj
-천원씨@대사웅본(@sotongshi)January 4, 2022
디버깅을 했습니다.
개발 환경
- Windows 10
- Python 3.9
- Docker
- Azure
설치
1.Azure Container Registry 새 레지스트리
2. Docker Windows 설치
3. 명령 알림을 열고 Hello-world
실행
docker run -it hello-world
4. 관리자 사용자 활성화
5. 명령 알림을 열고 관리자 사용자가 로그인
docker login xxxx.azurecr.io
6. 밀어
docker tag hello-world xxxx.azurecr.io/hello-world
docker push xxxx.azurecr.io/hello-world
7. 파일 준비
app.py
import streamlit as st
import pandas as pd
import requests
import json
st.markdown("# バスあと何分(くまもと)")
endpoint = st.secrets["endpoint"]
url = f"{endpoint}/stopnames"
headers = {'x-api-key': st.secrets["apikey"]}
response = requests.get(url, headers=headers, timeout=(29, 29))
if response.status_code == 200:
stop_names = response.json()['results']
stop_names.insert(0, '停留所を入力')
stop_name_1 = st.selectbox('乗車停留所', stop_names)
stop_name_2 = st.selectbox('降車停留所', stop_names)
if st.button("検索"):
bar = st.progress(0)
url = f"{endpoint}/minutes?stop_name_1={stop_name_1}&stop_name_2={stop_name_2}"
response = requests.get(url, headers=headers, stream=True, timeout=(29, 29))
filesize = int(response.headers['content-length'])
chunks = 0
data = b''
for chunk in response.iter_content():
data += chunk
chunks += len(chunk)
bar.progress(chunks/filesize)
results = json.loads(data)['results']
for result in results:
st.write(result)
requirements.txt
Streamlit>=1.4.0
pandas
requests
FROM python:3.9
COPY . /opt/app
WORKDIR /opt/app
RUN pip3 install -r requirements.txt
RUN mkdir ~/.streamlit
RUN cp .streamlit/config.toml ~/.streamlit/config.toml
RUN cp .streamlit/secrets.toml ~/.streamlit/secrets.toml
EXPOSE 80
USER root
ENTRYPOINT ["streamlit", "run"]
CMD ["app.py"]
config.toml
[server]
port = 80
[browser]
serverPort = 80
secrets.toml
endpoint = "https://xxxx.execute-api.ap-northeast-1.amazonaws.com/api"
apikey = "xxxx"
8. 구축
docker build . -f ./Dockerfile -t xxxx.azurecr.io/hello-world
9. 밀어
docker push xxxx.azurecr.io/hello-world
11. URL 액세스
수고하셨습니다
참고문헌
설치
1.Azure Container Registry 새 레지스트리
2. Docker Windows 설치
3. 명령 알림을 열고 Hello-world
실행docker run -it hello-world
4. 관리자 사용자 활성화
5. 명령 알림을 열고 관리자 사용자가 로그인
docker login xxxx.azurecr.io
6. 밀어
docker tag hello-world xxxx.azurecr.io/hello-world
docker push xxxx.azurecr.io/hello-world
7. 파일 준비
import streamlit as st
import pandas as pd
import requests
import json
st.markdown("# バスあと何分(くまもと)")
endpoint = st.secrets["endpoint"]
url = f"{endpoint}/stopnames"
headers = {'x-api-key': st.secrets["apikey"]}
response = requests.get(url, headers=headers, timeout=(29, 29))
if response.status_code == 200:
stop_names = response.json()['results']
stop_names.insert(0, '停留所を入力')
stop_name_1 = st.selectbox('乗車停留所', stop_names)
stop_name_2 = st.selectbox('降車停留所', stop_names)
if st.button("検索"):
bar = st.progress(0)
url = f"{endpoint}/minutes?stop_name_1={stop_name_1}&stop_name_2={stop_name_2}"
response = requests.get(url, headers=headers, stream=True, timeout=(29, 29))
filesize = int(response.headers['content-length'])
chunks = 0
data = b''
for chunk in response.iter_content():
data += chunk
chunks += len(chunk)
bar.progress(chunks/filesize)
results = json.loads(data)['results']
for result in results:
st.write(result)
Streamlit>=1.4.0
pandas
requests
FROM python:3.9
COPY . /opt/app
WORKDIR /opt/app
RUN pip3 install -r requirements.txt
RUN mkdir ~/.streamlit
RUN cp .streamlit/config.toml ~/.streamlit/config.toml
RUN cp .streamlit/secrets.toml ~/.streamlit/secrets.toml
EXPOSE 80
USER root
ENTRYPOINT ["streamlit", "run"]
CMD ["app.py"]
[server]
port = 80
[browser]
serverPort = 80
endpoint = "https://xxxx.execute-api.ap-northeast-1.amazonaws.com/api"
apikey = "xxxx"
8. 구축
docker build . -f ./Dockerfile -t xxxx.azurecr.io/hello-world
9. 밀어
docker push xxxx.azurecr.io/hello-world
11. URL 액세스
수고하셨습니다
참고문헌
Reference
이 문제에 관하여(Streamlit에서 제작한 웹 애플리케이션을 컨테이너화 디자인(Windows 10, Python 3.9, Azure Container Registry)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SatoshiGachiFujimoto/items/d8273194e88d8eb30213텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)