Tech Tips

  1. Programming
  2. 138 view

How to avoid GPG error when using ROS Docker image

Some weeks ago, I faced the following error with “RUN apt-get update” when I try to build my Docker image based on ROS official Docker image.

W: GPG error: http://snapshots.ros.org/foxy/final/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG AD19BAB3CBF125EA ROS Spanshot builder <rosbuild@ros.org>
E: The repository 'http://snapshots.ros.org/foxy/final/ubuntu focal InRelease' is not signed.

It takes some times to resolve it. So, I note the method. I faced kind of same error with ROS 2 Foxy and ROS Melodic.

ROS 2 Foxy


FROM ros:foxy

ENV DEBIAN_FRONTEND noninteractive

# start
RUN rm /etc/apt/sources.list.d/ros2-snapshots.list
RUN apt-get update && apt-get install -y curl
RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
RUN 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" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# end

RUN apt-get clean && apt-get update && apt-get install -y wget

I found the way from the following ROS Discourse’s thread.

ROS Melodic


FROM ros:melodic

ENV DEBIAN_FRONTEND noninteractive

# start
RUN rm /etc/apt/sources.list.d/ros1-snapshots.list
RUN apt-get update && apt-get install -y curl
RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros1.list > /dev/null
# end

RUN apt-get clean && apt-get update && apt-get install -y wget

When I try with ROS Melodic, I thought there are some small differences between ROS 2 Foxy’s method and ROS Melodic one. But, looks only few tiny differences now. I couldn’t find any thread about ROS Melodic. Maybe because of EOL.

Programming recent post

  1. The Benefits of PubSubClient and Points to Be…

  2. Memo of How to Build Java Develop Environment…

  3. How to Upload Program to Arduino Using Platfo…

  4. How to avoid GPG error when using ROS Docker …

  5. Trying to Develop Visited Countries Colored M…

関連記事

PAGE TOP