mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #43061 from edwinv/devcontainer
Github Codespaces configuration
This commit is contained in:
commit
9fb53e0673
4 changed files with 115 additions and 0 deletions
56
.devcontainer/Dockerfile
Normal file
56
.devcontainer/Dockerfile
Normal file
|
@ -0,0 +1,56 @@
|
|||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/ruby/.devcontainer/base.Dockerfile
|
||||
|
||||
# [Choice] Ruby version: 3, 3.0, 2, 2.7, 2.6
|
||||
ARG VARIANT="3.0"
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
|
||||
|
||||
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
||||
ARG NODE_VERSION="none"
|
||||
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
||||
|
||||
# [Optional] Uncomment this section to install additional OS packages.
|
||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
mariadb-server libmariadbclient-dev \
|
||||
postgresql postgresql-client postgresql-contrib libpq-dev \
|
||||
redis-server memcached \
|
||||
ffmpeg mupdf mupdf-tools libvips poppler-utils
|
||||
|
||||
|
||||
ARG IMAGEMAGICK_VERSION="7.1.0-5"
|
||||
RUN wget -qO /tmp/im.tar.xz https://imagemagick.org/download/releases/ImageMagick-$IMAGEMAGICK_VERSION.tar.xz \
|
||||
&& wget -qO /tmp/im.sig https://imagemagick.org/download/releases/ImageMagick-$IMAGEMAGICK_VERSION.tar.xz.asc \
|
||||
&& gpg --batch --keyserver keyserver.ubuntu.com --recv 89AB63D48277377A \
|
||||
&& gpg --batch --verify /tmp/im.sig /tmp/im.tar.xz \
|
||||
&& tar xJf /tmp/im.tar.xz -C /tmp \
|
||||
&& cd /tmp/ImageMagick-$IMAGEMAGICK_VERSION \
|
||||
&& ./configure --with-rsvg && make -j 9 && make install \
|
||||
&& ldconfig /usr/local/lib \
|
||||
&& rm -rf /tmp/*
|
||||
|
||||
|
||||
# [Optional] Uncomment this line to install additional gems.
|
||||
# Add the Rails main Gemfile and install the gems. This means the gem install can be done
|
||||
# during build instead of on start. When a fork or branch has different gems, we still have an
|
||||
# advantage due to caching of the other gems.
|
||||
RUN mkdir -p /tmp/rails
|
||||
COPY Gemfile Gemfile.lock RAILS_VERSION rails.gemspec package.json yarn.lock /tmp/rails/
|
||||
COPY actioncable/actioncable.gemspec /tmp/rails/actioncable/
|
||||
COPY actionmailbox/actionmailbox.gemspec /tmp/rails/actionmailbox/
|
||||
COPY actionmailer/actionmailer.gemspec /tmp/rails/actionmailer/
|
||||
COPY actionpack/actionpack.gemspec /tmp/rails/actionpack/
|
||||
COPY actiontext/actiontext.gemspec /tmp/rails/actiontext/
|
||||
COPY actionview/actionview.gemspec /tmp/rails/actionview/
|
||||
COPY activejob/activejob.gemspec /tmp/rails/activejob/
|
||||
COPY activemodel/activemodel.gemspec /tmp/rails/activemodel/
|
||||
COPY activerecord/activerecord.gemspec /tmp/rails/activerecord/
|
||||
COPY activestorage/activestorage.gemspec /tmp/rails/activestorage/
|
||||
COPY activesupport/activesupport.gemspec /tmp/rails/activesupport/
|
||||
COPY railties/railties.gemspec /tmp/rails/railties/
|
||||
RUN cd /tmp/rails \
|
||||
&& bundle install \
|
||||
&& yarn install \
|
||||
&& rm -rf /tmp/rails
|
||||
|
||||
# [Optional] Uncomment this line to install global node packages.
|
||||
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
22
.devcontainer/boot.sh
Executable file
22
.devcontainer/boot.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
bundle install
|
||||
yarn install
|
||||
|
||||
sudo service postgresql start
|
||||
sudo service mysql start
|
||||
sudo service redis-server start
|
||||
sudo service memcached start
|
||||
|
||||
# Create PostgreSQL users and databases
|
||||
sudo su postgres -c "createuser --superuser vscode"
|
||||
sudo su postgres -c "createdb -O vscode -E UTF8 -T template0 activerecord_unittest"
|
||||
sudo su postgres -c "createdb -O vscode -E UTF8 -T template0 activerecord_unittest2"
|
||||
|
||||
# Create MySQL database and databases
|
||||
MYSQL_PWD=root sudo mysql -uroot <<SQL
|
||||
CREATE USER 'rails'@'localhost';
|
||||
CREATE DATABASE activerecord_unittest DEFAULT CHARACTER SET utf8mb4;
|
||||
CREATE DATABASE activerecord_unittest2 DEFAULT CHARACTER SET utf8mb4;
|
||||
GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.* to 'rails'@'localhost';
|
||||
SQL
|
33
.devcontainer/devcontainer.json
Normal file
33
.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,33 @@
|
|||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/ruby
|
||||
{
|
||||
"name": "Ruby",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": "..",
|
||||
"args": {
|
||||
// Update 'VARIANT' to pick a Ruby version: 3, 3.0, 2, 2.7, 2.6
|
||||
"VARIANT": "3",
|
||||
// Options
|
||||
"NODE_VERSION": "lts/*"
|
||||
}
|
||||
},
|
||||
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {},
|
||||
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"rebornix.Ruby"
|
||||
],
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
"postCreateCommand": ".devcontainer/boot.sh",
|
||||
|
||||
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||
"remoteUser": "vscode"
|
||||
|
||||
}
|
|
@ -187,6 +187,10 @@ Contributing to the Rails Code
|
|||
|
||||
To move on from submitting bugs to helping resolve existing issues or contributing your own code to Ruby on Rails, you _must_ be able to run its test suite. In this section of the guide, you'll learn how to set up the tests on your computer.
|
||||
|
||||
#### The Easiest Way
|
||||
|
||||
Start a Github Codespace from the repository and start developing right away from the browser IDE or in your local VScode. The Codespace is initialized with all required dependencies and allows you to run all tests.
|
||||
|
||||
#### The Easy Way
|
||||
|
||||
The easiest and recommended way to get a development environment ready to hack is to use the [rails-dev-box](https://github.com/rails/rails-dev-box).
|
||||
|
|
Loading…
Reference in a new issue