即使我指定了它,我的 Flask api 也无法获取我的端口

问题描述 投票:0回答:1

我的用户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一个端口号,是的,它可以工作,但这不是我想要的,因为我稍后尝试用另一个端口测试它

python linux bash docker sh
1个回答
0
投票

您需要在

Dockerfile

CMD ["./run.sh", "./project/main/userapi.py", 5555] 

其中

5555
是您要绑定的端口。

我认为你的

except
错了:

except ValueError as ve

单独尝试

except

© www.soinside.com 2019 - 2024. All rights reserved.