From 6e31f9c17797ad0c03e56897daa569798aeab9bd Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Sun, 19 Jan 2025 22:02:03 +0100 Subject: [PATCH 1/9] feat: docker images --- README.md | 9 ++++++-- docker/Dockerfile.humble | 46 ++++++++++++++++++++++++++++++++++++++++ docker/Dockerfile.jazzy | 46 ++++++++++++++++++++++++++++++++++++++++ docs/setup_docker.md | 34 +++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 docker/Dockerfile.humble create mode 100644 docker/Dockerfile.jazzy create mode 100644 docs/setup_docker.md diff --git a/README.md b/README.md index 87005aceb..f4d3d2d39 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,8 @@ The RAI framework aims to: ## Table of Contents - [Features](#features) -- [Setup](#setup) +- [Setup (docker)](#setup-docker) +- [Setup (local)](#setup) - [Usage examples (demos)](#simulation-demos) - [Debugging Assistant](#debugging-assistant) - [Developer resources](#developer-resources) @@ -71,7 +72,11 @@ The RAI framework aims to: - [ ] SDK for RAI developers. - [ ] UI for configuration to select features and tools relevant for your deployment. -## Setup +## Setup (docker) + +Currently, docker images are experimental. See the [docker](docs/setup_docker.md) for instructions. + +## Setup (local) Before going further, make sure you have ROS 2 (Jazzy or Humble) installed and sourced on your system. diff --git a/docker/Dockerfile.humble b/docker/Dockerfile.humble new file mode 100644 index 000000000..5bcab2792 --- /dev/null +++ b/docker/Dockerfile.humble @@ -0,0 +1,46 @@ +# Dockerfile based on ubuntu 22.04 +FROM ubuntu:22.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + git + +# Setup locale +RUN apt-get update && apt-get install -y locales && \ + locale-gen en_US en_US.UTF-8 && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 +ENV LANG=en_US.UTF-8 + +# Install ROS2 Humble +RUN apt-get update && apt-get install -y software-properties-common && \ + add-apt-repository universe && \ + apt-get update && apt-get install -y curl && \ + curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null && \ + apt-get update && apt-get upgrade -y && \ + apt-get install -y ros-humble-desktop ros-dev-tools + +# Add ROS 2 source to .bashrc +RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 +ENV PATH="/root/.local/bin:$PATH" + +# Clone and setup RAI +WORKDIR /rai +RUN git clone https://github.com/RobotecAI/rai.git . + +# Install Python dependencies with Poetry +RUN poetry install --with nomad,openset + +# Install ROS dependencies +RUN /bin/bash -c '. /opt/ros/humble/setup.bash && \ + rosdep install --from-paths src --ignore-src -r -y' + +# Build the workspace +RUN /bin/bash -c '. /opt/ros/humble/setup.bash && colcon build --symlink-install' diff --git a/docker/Dockerfile.jazzy b/docker/Dockerfile.jazzy new file mode 100644 index 000000000..7531d396a --- /dev/null +++ b/docker/Dockerfile.jazzy @@ -0,0 +1,46 @@ +# Dockerfile based on ubuntu 24.04 +FROM ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + git + +# Setup locale +RUN apt-get update && apt-get install -y locales && \ + locale-gen en_US en_US.UTF-8 && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 +ENV LANG=en_US.UTF-8 + +# Install ROS2 jazzy +RUN apt-get update && apt-get install -y software-properties-common && \ + add-apt-repository universe && \ + apt-get update && apt-get install -y curl && \ + curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null && \ + apt-get update && apt-get upgrade -y && \ + apt-get install -y ros-jazzy-desktop ros-dev-tools + +# Add ROS 2 source to .bashrc +RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 +ENV PATH="/root/.local/bin:$PATH" + +# Clone and setup RAI +WORKDIR /rai +RUN git clone https://github.com/RobotecAI/rai.git . + +# Install Python dependencies with Poetry +RUN poetry install --with nomad,openset + +# Install ROS dependencies +RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && \ + rosdep install --from-paths src --ignore-src -r -y' + +# Build the workspace +RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && colcon build --symlink-install' diff --git a/docs/setup_docker.md b/docs/setup_docker.md new file mode 100644 index 000000000..e79fa296e --- /dev/null +++ b/docs/setup_docker.md @@ -0,0 +1,34 @@ +# Setup RAI with docker + +> [!IMPORTANT] +> Docker images are experimental. For tested setup, see the [local setup](../README.md#setup-local). + +## 1. Build the docker image + +Choose the docker image based on your preferred ROS 2 version. + +### 1.1. Humble + +```bash +docker build -t rai:humble -f docker/Dockerfile.humble . +``` + +### 1.2. Jazzy + +```bash +docker build -t rai:jazzy -f docker/Dockerfile.jazzy . +``` + +## 2. Run the docker container + +```bash +docker run -it rai:humble -v $(pwd):/rai +``` + +## 3. Run the tests to confirm the setup + +```sh +cd /rai +source setup_shell.sh +poetry run pytest +``` From 9c67784414aac5b8e364686d315b884e57a3c960 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Sun, 19 Jan 2025 22:13:42 +0100 Subject: [PATCH 2/9] fix: init and update rosdep --- docker/Dockerfile.humble | 5 +++++ docker/Dockerfile.jazzy | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/docker/Dockerfile.humble b/docker/Dockerfile.humble index 5bcab2792..700733d6c 100644 --- a/docker/Dockerfile.humble +++ b/docker/Dockerfile.humble @@ -24,6 +24,11 @@ RUN apt-get update && apt-get install -y software-properties-common && \ apt-get update && apt-get upgrade -y && \ apt-get install -y ros-humble-desktop ros-dev-tools + +# Initialize and update rosdep +RUN /bin/bash -c '. /opt/ros/humble/setup.bash && \ + rosdep init && rosdep update' + # Add ROS 2 source to .bashrc RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc diff --git a/docker/Dockerfile.jazzy b/docker/Dockerfile.jazzy index 7531d396a..62abe1c61 100644 --- a/docker/Dockerfile.jazzy +++ b/docker/Dockerfile.jazzy @@ -24,6 +24,11 @@ RUN apt-get update && apt-get install -y software-properties-common && \ apt-get update && apt-get upgrade -y && \ apt-get install -y ros-jazzy-desktop ros-dev-tools + +# Initialize and update rosdep +RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && \ + rosdep init && rosdep update' + # Add ROS 2 source to .bashrc RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc From 325225d6c541e1a9260c83b53e9420b94a175c38 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Sun, 19 Jan 2025 22:21:33 +0100 Subject: [PATCH 3/9] docs: add missing running instructions for jazzy --- docs/setup_docker.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/setup_docker.md b/docs/setup_docker.md index e79fa296e..8fefd5fef 100644 --- a/docs/setup_docker.md +++ b/docs/setup_docker.md @@ -21,10 +21,18 @@ docker build -t rai:jazzy -f docker/Dockerfile.jazzy . ## 2. Run the docker container +### 2.1. Humble + ```bash docker run -it rai:humble -v $(pwd):/rai ``` +### 2.2. Jazzy + +```bash +docker run -it rai:jazzy -v $(pwd):/rai +``` + ## 3. Run the tests to confirm the setup ```sh From 2632c8778dbcfd77bc0f5f5468bb64592bf1538f Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Sun, 19 Jan 2025 22:24:01 +0100 Subject: [PATCH 4/9] chore: add license header --- docker/Dockerfile.humble | 15 +++++++++++++++ docker/Dockerfile.jazzy | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/docker/Dockerfile.humble b/docker/Dockerfile.humble index 700733d6c..d0dedb95f 100644 --- a/docker/Dockerfile.humble +++ b/docker/Dockerfile.humble @@ -1,3 +1,18 @@ +# Copyright (C) 2024 Robotec.AI +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + # Dockerfile based on ubuntu 22.04 FROM ubuntu:22.04 diff --git a/docker/Dockerfile.jazzy b/docker/Dockerfile.jazzy index 62abe1c61..7bd6665fc 100644 --- a/docker/Dockerfile.jazzy +++ b/docker/Dockerfile.jazzy @@ -1,3 +1,18 @@ +# Copyright (C) 2024 Robotec.AI +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + # Dockerfile based on ubuntu 24.04 FROM ubuntu:24.04 From 2dcb7aaa09818313e76fa7689727d71b5bcc1f5c Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Sun, 19 Jan 2025 22:42:18 +0100 Subject: [PATCH 5/9] fix: docker run commands --- docs/setup_docker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/setup_docker.md b/docs/setup_docker.md index 8fefd5fef..a92bc60a2 100644 --- a/docs/setup_docker.md +++ b/docs/setup_docker.md @@ -24,13 +24,13 @@ docker build -t rai:jazzy -f docker/Dockerfile.jazzy . ### 2.1. Humble ```bash -docker run -it rai:humble -v $(pwd):/rai +docker run -it -v $(pwd):/rai rai:humble ``` ### 2.2. Jazzy ```bash -docker run -it rai:jazzy -v $(pwd):/rai +docker run -it -v $(pwd):/rai rai:jazzy ``` ## 3. Run the tests to confirm the setup From 760abde3ad4d2811bcdc28ae966d4f0038254861 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Mon, 20 Jan 2025 12:00:50 +0100 Subject: [PATCH 6/9] refactor: use single dockerfile with ARG --- docker/Dockerfile | 42 +++++++++++++++++++++++++ docker/Dockerfile.humble | 66 ---------------------------------------- docker/Dockerfile.jazzy | 66 ---------------------------------------- docs/setup_docker.md | 4 +-- 4 files changed, 44 insertions(+), 134 deletions(-) create mode 100644 docker/Dockerfile delete mode 100644 docker/Dockerfile.humble delete mode 100644 docker/Dockerfile.jazzy diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..635f04f39 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,42 @@ +# Copyright (C) 2024 Robotec.AI +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG ROS_DISTRO=jazzy + +FROM osrf/ros:${ROS_DISTRO}-desktop-full +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + git + +# Install Poetry +RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 +ENV PATH="/root/.local/bin:$PATH" + +# Clone and setup RAI +WORKDIR /rai +RUN git clone https://github.com/RobotecAI/rai.git . + +# Install Python dependencies with Poetry +RUN poetry install --with nomad,openset + +# Install ROS dependencies +RUN /bin/bash -c '. /opt/ros/${ROS_DISTRO}/setup.bash && \ + rosdep install --from-paths src --ignore-src -r -y' + +# Build the workspace +RUN /bin/bash -c '. /opt/ros/${ROS_DISTRO}/setup.bash && colcon build --symlink-install' diff --git a/docker/Dockerfile.humble b/docker/Dockerfile.humble deleted file mode 100644 index d0dedb95f..000000000 --- a/docker/Dockerfile.humble +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (C) 2024 Robotec.AI -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# Dockerfile based on ubuntu 22.04 -FROM ubuntu:22.04 - -ENV DEBIAN_FRONTEND=noninteractive - -# Install dependencies -RUN apt-get update && apt-get install -y \ - python3 \ - python3-pip \ - git - -# Setup locale -RUN apt-get update && apt-get install -y locales && \ - locale-gen en_US en_US.UTF-8 && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 -ENV LANG=en_US.UTF-8 - -# Install ROS2 Humble -RUN apt-get update && apt-get install -y software-properties-common && \ - add-apt-repository universe && \ - apt-get update && apt-get install -y curl && \ - curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null && \ - apt-get update && apt-get upgrade -y && \ - apt-get install -y ros-humble-desktop ros-dev-tools - - -# Initialize and update rosdep -RUN /bin/bash -c '. /opt/ros/humble/setup.bash && \ - rosdep init && rosdep update' - -# Add ROS 2 source to .bashrc -RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc - -# Install Poetry -RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 -ENV PATH="/root/.local/bin:$PATH" - -# Clone and setup RAI -WORKDIR /rai -RUN git clone https://github.com/RobotecAI/rai.git . - -# Install Python dependencies with Poetry -RUN poetry install --with nomad,openset - -# Install ROS dependencies -RUN /bin/bash -c '. /opt/ros/humble/setup.bash && \ - rosdep install --from-paths src --ignore-src -r -y' - -# Build the workspace -RUN /bin/bash -c '. /opt/ros/humble/setup.bash && colcon build --symlink-install' diff --git a/docker/Dockerfile.jazzy b/docker/Dockerfile.jazzy deleted file mode 100644 index 7bd6665fc..000000000 --- a/docker/Dockerfile.jazzy +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (C) 2024 Robotec.AI -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# Dockerfile based on ubuntu 24.04 -FROM ubuntu:24.04 - -ENV DEBIAN_FRONTEND=noninteractive - -# Install dependencies -RUN apt-get update && apt-get install -y \ - python3 \ - python3-pip \ - git - -# Setup locale -RUN apt-get update && apt-get install -y locales && \ - locale-gen en_US en_US.UTF-8 && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 -ENV LANG=en_US.UTF-8 - -# Install ROS2 jazzy -RUN apt-get update && apt-get install -y software-properties-common && \ - add-apt-repository universe && \ - apt-get update && apt-get install -y curl && \ - curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null && \ - apt-get update && apt-get upgrade -y && \ - apt-get install -y ros-jazzy-desktop ros-dev-tools - - -# Initialize and update rosdep -RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && \ - rosdep init && rosdep update' - -# Add ROS 2 source to .bashrc -RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc - -# Install Poetry -RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 -ENV PATH="/root/.local/bin:$PATH" - -# Clone and setup RAI -WORKDIR /rai -RUN git clone https://github.com/RobotecAI/rai.git . - -# Install Python dependencies with Poetry -RUN poetry install --with nomad,openset - -# Install ROS dependencies -RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && \ - rosdep install --from-paths src --ignore-src -r -y' - -# Build the workspace -RUN /bin/bash -c '. /opt/ros/jazzy/setup.bash && colcon build --symlink-install' diff --git a/docs/setup_docker.md b/docs/setup_docker.md index a92bc60a2..93c5faf5e 100644 --- a/docs/setup_docker.md +++ b/docs/setup_docker.md @@ -10,13 +10,13 @@ Choose the docker image based on your preferred ROS 2 version. ### 1.1. Humble ```bash -docker build -t rai:humble -f docker/Dockerfile.humble . +docker build -t rai:humble --build-arg ROS_DISTRO=humble -f docker/Dockerfile . ``` ### 1.2. Jazzy ```bash -docker build -t rai:jazzy -f docker/Dockerfile.jazzy . +docker build -t rai:jazzy --build-arg ROS_DISTRO=jazzy -f docker/Dockerfile . ``` ## 2. Run the docker container From 2899863fed2190d84724f64ba5c06f72df1a28c8 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Mon, 20 Jan 2025 14:31:11 +0100 Subject: [PATCH 7/9] chore: add rmw info --- docs/setup_docker.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/setup_docker.md b/docs/setup_docker.md index 93c5faf5e..8e5d27caa 100644 --- a/docs/setup_docker.md +++ b/docs/setup_docker.md @@ -21,6 +21,11 @@ docker build -t rai:jazzy --build-arg ROS_DISTRO=jazzy -f docker/Dockerfile . ## 2. Run the docker container +> [!TIP] +> If you intend to run demos on the host machine, ensure the docker container can communicate with it. +> Test this by running the standard ROS 2 example with one node in docker and one on the host: [link](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html#try-some-examples). +> If topics are not visible or cannot be subscribed to, try using [rmw_cyclone_dds](https://github.com/ros2/rmw_cyclonedds) instead of the default rmw_fastrtps_cpp. + ### 2.1. Humble ```bash From 44ca32571cb5d6393266fcc09b8719fc2b119d64 Mon Sep 17 00:00:00 2001 From: Maciej Majek Date: Mon, 20 Jan 2025 14:31:53 +0100 Subject: [PATCH 8/9] fix: add network settings to docker run --- docs/setup_docker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/setup_docker.md b/docs/setup_docker.md index 8e5d27caa..c84199aba 100644 --- a/docs/setup_docker.md +++ b/docs/setup_docker.md @@ -29,13 +29,13 @@ docker build -t rai:jazzy --build-arg ROS_DISTRO=jazzy -f docker/Dockerfile . ### 2.1. Humble ```bash -docker run -it -v $(pwd):/rai rai:humble +docker run --net=host --ipc=host --pid=host -it -v $(pwd):/rai rai:humble ``` ### 2.2. Jazzy ```bash -docker run -it -v $(pwd):/rai rai:jazzy +docker run --net=host --ipc=host --pid=host -it -v $(pwd):/rai rai:jazzy ``` ## 3. Run the tests to confirm the setup From 093ea393e99a488a63a0fd76d73f82f168335b6c Mon Sep 17 00:00:00 2001 From: Maciej Majek <46171033+maciejmajek@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:08:49 +0100 Subject: [PATCH 9/9] Update docker/Dockerfile Co-authored-by: Bartek Boczek <22739059+boczekbartek@users.noreply.github.com> --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 635f04f39..494092677 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -21,7 +21,8 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ - git + git \ + wget # Install Poetry RUN curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4