Created
February 21, 2021 19:59
-
-
Save ruralocity/ff0a562d360fafd689dc183a6cb79f3f to your computer and use it in GitHub Desktop.
Initial setup of a VS Code devcontainer for Rails; see https://everydayrails.com/2021/02/21/docker-devcontainer-series-setup.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
// 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.155.1/containers/ruby-rails | |
{ | |
"name": "Yet Another To-do App", | |
"build": { | |
"dockerfile": "Dockerfile", | |
"args": { | |
// Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5 | |
"VARIANT": "2.5", | |
"NODE_VERSION": "lts/*" | |
} | |
}, | |
// Set *default* container specific settings.json values on container create. | |
"settings": { | |
"terminal.integrated.shell.linux": "/bin/bash" | |
}, | |
// 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": [3000], | |
// Use 'postCreateCommand' to run commands after the container is created. | |
"postCreateCommand": "bin/setup", | |
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. | |
"remoteUser": "vscode" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# [Choice] Ruby version: 2, 2.7, 2.6, 2.5 | |
ARG VARIANT=2 | |
FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT} | |
ARG NODE_VERSION="lts/*" | |
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1" | |
# [Optional] Uncomment this section to install additional OS packages. | |
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ | |
# && apt-get -y install --no-install-recommends <your-package-list-here> | |
# [Optional] Uncomment this line to install additional gems. | |
# RUN gem install <your-gem-names-here> | |
# [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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'fileutils' | |
include FileUtils | |
# path to your application root. | |
APP_ROOT = File.expand_path('..', __dir__) | |
def system!(*args) | |
system(*args) || abort("\n== Command #{args} failed ==") | |
end | |
chdir APP_ROOT do | |
# This script is a starting point to setup your application. | |
# Add necessary setup steps to this file. | |
puts '== Installing dependencies ==' | |
system! 'gem install bundler --conservative' | |
system('bundle check') || system!('bundle install') | |
# Install JavaScript dependencies if using Yarn | |
# system('bin/yarn') | |
puts "\n== Copying sample files ==" | |
unless File.exist?('.env') | |
cp '.env.sample', '.env' | |
end | |
# unless File.exist?('config/database.yml') | |
# cp 'config/database.yml.sample', 'config/database.yml' | |
# end | |
# puts "\n== Preparing database ==" | |
# system! 'bin/rails db:setup' | |
# puts "\n== Removing old logs and tempfiles ==" | |
# system! 'bin/rails log:clear tmp:clear' | |
# puts "\n== Restarting application server ==" | |
# system! 'bin/rails restart' | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment