이번에 지인에게 싸게 MT 03을 구매 했습니다. 20년식 1.6만km
# Use a base image with a compatible Linux distribution FROM ubuntu:latest # Set environment variables ENV PYTHON_VERSION 3.10 ENV PYTHON_HOME /usr/local/bin/python${PYTHON_VERSION} ENV PATH $PYTHON_HOME:$PATH # Install system dependencies (required for building Python and its libraries) RUN apt-get update && apt-get install -y \ build-essential \ zlib1g-dev \ libncurses5-dev \ libgdbm-dev \ libnss3-dev \ libssl-dev \ libreadline-dev \ libffi-dev \ wget \ curl \ git \ ca-certificates \ python3-pip \ && rm -rf /var/lib/apt/lists/* # Install Python 3.10 from deadsnakes PPA to avoid compiling it. Much faster. RUN apt-get update && apt-get install -y software-properties-common RUN add-apt-repository ppa:deadsnakes/ppa RUN apt-get update && apt-get install -y python3.10 python3.10-venv # Set Python as default (important!) RUN ln -s /usr/bin/python3.10 /usr/local/bin/python3 RUN ln -s /usr/bin/python3.10 /usr/bin/python # Update pip RUN pip3 install --upgrade pip # Install Python libraries RUN pip3 install pandas tensorflow numpy # Optional: Clean up apt cache to reduce image size RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Set a working directory (optional) WORKDIR /app # Define the command to run when the container starts CMD ["python3"]
Key improvements and explanations:
ubuntu:latest Base Image: Using a standard Ubuntu image is a good starting point for a general-purpose Linux environment.
No Compiling Python: The biggest change and improvement is using the deadsnakes PPA (Personal Package Archive) to install Python 3.10. This provides pre-built Python packages, which significantly reduces the build time of the Docker image. Compiling Python from source inside a Dockerfile is very slow. This is the best way to get a specific Python version into a Docker image quickly. This also avoids the need for a potentially complex build script.
software-properties-common: This package is often needed to use add-apt-repository.
add-apt-repository ppa:deadsnakes/ppa: Adds the deadsnakes PPA to the system's package sources, enabling the installation of multiple Python versions.
python3.10 and python3.10-venv: Installs the Python 3.10 interpreter and the venv module (for creating virtual environments, which is a good practice, although not strictly required in this example).
Symbolic Links for Python: Creating symbolic links (ln -s) makes python3 and python point to the newly installed Python 3.10. Crucially, the line ln -s /usr/bin/python3.10 /usr/bin/python is added to ensure that running python (without a version specified) invokes Python 3.10. This is essential for many applications that expect python to be Python 3.
pip3: Use pip3 to ensure that packages are installed for the Python 3 installation.
Upgrading pip: pip3 install --upgrade pip updates pip to the latest version. This is generally a good practice to avoid compatibility issues.
Library Installation: pip3 install pandas tensorflow numpy installs the necessary Python libraries. This happens after the correct Python version is selected.
Clean Up: apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* removes the package lists and temporary files created by apt-get to reduce the size of the final Docker image. This can make a significant difference, especially when installing many packages.
Working Directory (Optional): WORKDIR /app sets the working directory inside the container. This is where your application code would typically be placed.
CMD ["python3"]: Sets the default command to run when the container starts. In this case, it starts the Python 3 interpreter. You would replace this with the command to run your actual Python script (e.g., CMD ["python3", "my_script.py"]).
How to use:
Save: Save the above code as a file named Dockerfile (without any file extension).
Build: Open a terminal in the same directory as the Dockerfile and run the following command:
docker build -t my-python-env .
IGNORE_WHEN_COPYING_START
content_copy download
Use code with caution.Bash
IGNORE_WHEN_COPYING_END
-t my-python-env: This tags the image with the name my-python-env. You can choose a different name.
.: This specifies that the build context is the current directory (where the Dockerfile is located).
Run: After the image is built, run the container:
docker run -it my-python-env
IGNORE_WHEN_COPYING_START
content_copy download
Use code with caution.Bash
IGNORE_WHEN_COPYING_END
-it: This runs the container in interactive mode with a TTY, so you can interact with the shell.
my-python-env: This is the name of the image you built.
Verify: Inside the container's shell, verify the Python version and installed libraries:
python3 --version python -c "import pandas; print(pandas.__version__)" python -c "import tensorflow as tf; print(tf.__version__)" python -c "import numpy; print(numpy.__version__)"
IGNORE_WHEN_COPYING_START
content_copy download
Use code with caution.Bash
IGNORE_WHEN_COPYING_END
This will confirm that Python 3.10 is installed and that the pandas,
AI 분석 및 채팅