devcontainers / images

Repository for pre-built dev container images published under mcr.microsoft.com/devcontainers
https://containers.dev
MIT License
1.11k stars 411 forks source link

Gem subdirectory not writable on ruby:3.2-bookworm #1090

Closed luizkowalski closed 1 week ago

luizkowalski commented 2 weeks ago

hey šŸ‘‹šŸ»

I'm trying to use the image ruby:3.2-bookworm but I can update RubyGems using gem update --system -N, it throws this error:

ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ dir_s_mkdir - /usr/local/lib/ruby/site_ruby/3.2.0/rubygems
        /usr/local/lib/ruby/3.2.0/fileutils.rb:403:in `mkdir'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:403:in `fu_mkdir'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:384:in `block (2 levels) in mkdir_p'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:382:in `reverse_each'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:382:in `block in mkdir_p'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:374:in `each'
        /usr/local/lib/ruby/3.2.0/fileutils.rb:374:in `mkdir_p'
        /usr/local/rvm/gems/default/gems/rubygems-update-3.5.11/lib/rubygems/commands/setup_command.rb:143:in `mkdir_p'
        /usr/local/rvm/gems/default/gems/rubygems-update-3.5.11/lib/rubygems/commands/setup_command.rb:641:in `install_file'
        /usr/local/rvm/gems/default/gems/rubygems-update-3.5.11/lib/rubygems/commands/setup_command.rb:633:in `block in install_file_list'
        /usr/local/rvm/gems/default/gems/rubygems-update-3.5.11/lib/rubygems/commands/setup_command.rb:632:in `each'

it works when I manually run sudo chown -R $(whoami):vscode /usr/local/lib/ruby/* but I don't think this is expected

Here is my Dockerfile and configurations:

FROM mcr.microsoft.com/vscode/devcontainers/ruby:3.2-bookworm

ENV RAILS_DEVELOPMENT_HOSTS=".githubpreview.dev,.app.github.dev"

RUN apt install curl ca-certificates

RUN install -d /usr/share/postgresql-common/pgdg
RUN curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
RUN sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

RUN apt update

RUN apt install postgresql-client-16 -y --no-install-recommends \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
{
  "name": "Project",
  "dockerComposeFile": "docker-compose.yml",
  "service": "app",
  "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
  "features": {
    "ghcr.io/devcontainers/features/common-utils:2": {
      "username": "vscode",
      "userUid": 1001,
      "userGid": 1001,
      "installZsh": true,
      "installOhMyZsh": true,
      "configureZshAsDefaultShell": true,
      "upgradePackages": true
    },
    "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
      "packages": "libpq-dev, libvips, postgresql-client-16"
    },
    "ghcr.io/devcontainers/features/git:1": {
      "version": "latest"
    },
    "ghcr.io/devcontainers/features/node:1": {
      "version": 20
    },
    "ghcr.io/devcontainers-contrib/features/zsh-plugins:0": {
      "username": "vscode",
      "plugins": "bundler rails ruby yarn git"
    },
    "ghcr.io/devcontainers/features/sshd:1": {
      "version": "latest"
    }
  }
}
samruddhikhandale commented 1 week ago

Hi šŸ‘‹

Unfortunately, this is a known bug which is expected to be fixed by https://github.com/devcontainers/features/issues/757

We also recommend using šŸ‘‡ in the Templates, see here

RUN su vscode -c "gem install rails webdrivers"
RUN su vscode -c "/usr/local/rvm/bin/rvm fix-permissions"
luizkowalski commented 1 week ago

thanks @samruddhikhandale, I'm following the issue now!