# 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