# This Dockerfile describes the process of creating a Docker image that includes | |
# the necessary environment to run the LightZero library. | |
# The Docker image is based on Ubuntu 20.04, and it installs Python 3.8 and other | |
# necessary dependencies. It then clones the LightZero library from its GitHub | |
# repository and installs it in an editable mode. | |
# Before building the Docker image, create a new empty directory, move this Dockerfile into it, | |
# and navigate into this directory. This is to avoid sending unnecessary files to the Docker daemon | |
# during the build. Then you can then build the Docker image using the following command in your terminal: | |
# docker build -t ubuntu-py38-lz:latest -f ./Dockerfile . | |
# To run a container from the image in interactive mode with a Bash shell, you can use: | |
# docker run -dit --rm ubuntu-py38-lz:latest /bin/bash | |
# Once you're inside the container, you can run the example Python script with: | |
# python ./LightZero/zoo/classic_control/cartpole/config/cartpole_muzero_config.py | |
# Note: The working directory inside the Docker image is /opendilab, so you don't need | |
# to change your current directory before running the Python script. | |
# Start from Ubuntu 20.04 | |
FROM ubuntu:20.04 | |
# Set the working directory in the Docker image | |
WORKDIR /opendilab | |
# Install Python 3.8 and other dependencies | |
# We update the apt package list, install Python 3.8, pip, compilers and other necessary tools. | |
# After installing, we clean up the apt cache and remove unnecessary lists to save space. | |
RUN apt-get update && \ | |
apt-get install -y python3.8 python3-pip gcc g++ swig git && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
# Create a symbolic link for Python and pip | |
# This makes it easy to call python and pip from any location in the container. | |
RUN ln -s /usr/bin/python3.8 /usr/local/bin/python && \ | |
ln -s /usr/bin/pip3 /usr/local/bin/pip | |
# Update pip and setuptools to the latest version | |
# This step ensures that we have the latest tools for installing Python packages. | |
RUN python -m pip install --upgrade pip setuptools | |
# Clone the LightZero repository from GitHub | |
# This step downloads the latest version of LightZero to our Docker image. | |
RUN git clone https://github.com/opendilab/LightZero.git | |
# Install the LightZero package in editable mode | |
# The -e option allows us to edit the source code without needing to reinstall the package. | |
RUN pip install -e ./LightZero |