# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.10-slim

EXPOSE 5002

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# RUN mkdir -p ~/.pip
# RUN echo '\n\
#     [global] \n\
#     trusted-host=mirrors.aliyun.com \n\
#     index-url=https://mirrors.aliyun.com/pypi/simple/ \n\
#     ' > ~/.pip/pip.conf

# Install pip requirements
COPY requirements.txt .

RUN python -m pip install -r requirements.txt
RUN python -m pip install pyinstaller

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
VOLUME [ "/app" ]
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["pyinstaller", "-F", "-c", "main.py"]