Skip to content

Commit

Permalink
Version updates and Devcontainer
Browse files Browse the repository at this point in the history
  • Loading branch information
hovancik committed Feb 19, 2024
1 parent 9e56a40 commit 0fad261
Show file tree
Hide file tree
Showing 13 changed files with 289 additions and 157 deletions.
6 changes: 6 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04

# Adding the PostgreSQL repository so we can install postgresql-client v15
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
RUN sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
19 changes: 19 additions & 0 deletions .devcontainer/boot.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

echo "Setting SSH password for vscode user..."
sudo usermod --password "$(echo vscode | openssl passwd -1 -stdin)" vscode

echo "Updating RubyGems..."
gem update --system -N

echo "Installing dependencies..."
bundle install
yarn install

echo "Copying database.yml..."
cp -n .env.devcontainer .env

echo "Creating database..."
bin/rails db:create db:migrate db:seed

echo "Done!"
51 changes: 51 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"name": "Your Project Name",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/sshd:1": {},
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
"packages": "libpq-dev, libvips, postgresql-client-15"
},
"ghcr.io/devcontainers/features/git:1": {
"version": "latest"
},
"ghcr.io/devcontainers/features/ruby:1": {
"version": "3.2.2"
},
"ghcr.io/devcontainers/features/node:1": {
"version": "16.19.0"
},
"ghcr.io/devcontainers/features/common-utils:2": {
"username": "vscode",
"userUid": 1000,
"userGid": 1000,
"installZsh": true,
"installOhMyZsh": true,
"configureZshAsDefaultShell": true,
"upgradePackages": true
},
"ghcr.io/devcontainers-contrib/features/zsh-plugins:0": {
"username": "vscode",
"plugins": "bundler rails ruby yarn"
}
},

// Configure tool-specific properties.
"customizations": {
"vscode": {
"extensions": ["Shopify.ruby-lsp"]
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// This can be used to network with other containers or the host.
"forwardPorts": [2222, 3000, 5433],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": ".devcontainer/boot.sh"

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
30 changes: 30 additions & 0 deletions .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
version: "3"

services:
app:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
volumes:
- ../..:/workspaces:cached
command: sleep infinity
postgres:
image: postgres:15-alpine
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- 5433:5432
environment:
POSTGRES_USER: postgres
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis-data:/data

volumes:
postgres-data:
redis-data:
1 change: 1 addition & 0 deletions .devcontainer/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from https://github.com/luizkowalski/devcontainer-rails
10 changes: 5 additions & 5 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ jobs:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11
image: postgres:15
ports:
- 5432:5432
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1

- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16.16.0
node-version: 16.19.0

- name: Install dependent libraries
run: sudo apt-get install libpq-dev
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
env:
RAILS_ENV: test
- name: Test & publish code coverage
uses: paambaati/codeclimate-action@v3.0.0
uses: paambaati/codeclimate-action@v5
env:
RAILS_ENV: test
POSTGRES_USER: postgres
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.1.2
3.2.2
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM ruby:3.1.2
FROM ruby:3.2.2
RUN apt-get update -qq

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt-get install -y nodejs
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.1.2'
ruby '3.2.2'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0'
Expand Down

0 comments on commit 0fad261

Please sign in to comment.