我的用户API
if __name__ == "__main__":
if len(sys.argv) >= 2:
try:
app_port = int(sys.argv[1])
except ValueError as ve:
app_port = 5558
app.run(debug=True, host='0.0.0.0', port=app_port)
else:
raise ValueError('No starting port for the application')
我的startdocker.sh文件
#!/bin/bash
docker container stop userapi_cnt_ad
docker container rm userapi_cnt_ad
docker image rm userapi_img_ad
docker volume rm ad_vol
docker volume create --name ad_vol --opt device=/mnt/share/ad-infra-tp-2-h-2024 --opt o=bind --opt type=none
docker build -t userapi_img_ad -f ./project/docker/Dockerfile .
docker run -p 25556:5556 --mount source=ad_vol,target=/mnt/app --name userapi_cnt_ad userapi_img_ad
和我的 dockerfile
dont want to share my FROM file
COPY ./requirements.txt /
RUN pip3 install -r /requirements.txt
WORKDIR /mnt/app/
CMD ["./run.sh", "./project/main/userapi.py"]
当我尝试./startdocker.sh
它总是给我
File "./project/main/userapi.py", line 46, in <module>
raise ValueError('No starting port for the application')
ValueError: No starting port for the application
我尝试直接给app_port一个端口号,是的,它可以工作,但这不是我想要的,因为我稍后尝试用另一个端口测试它
您需要在
Dockerfile
:
CMD ["./run.sh", "./project/main/userapi.py", 5555]
其中
5555
是您要绑定的端口。
我认为你的
except
错了:
except ValueError as ve
单独尝试
except