-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
929 additions
and
383 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,31 @@ | ||
tmp | ||
log | ||
.circleci | ||
.bundle | ||
.ruby-version | ||
.tool-versions | ||
.overloads | ||
.git | ||
.gitignore | ||
node_modules | ||
public/uploads | ||
deploy | ||
.idea | ||
.github | ||
.rubocop* | ||
.erb-lint.yml | ||
.env-example | ||
.env | ||
.dockerignore | ||
Procfile | ||
tmp | ||
log | ||
docs | ||
node_modules | ||
public/uploads | ||
storage | ||
vendor | ||
public/packs-test | ||
deploy | ||
spec | ||
.idea | ||
.github | ||
README.md | ||
Dockerfile | ||
docker-compose.prod.yml | ||
docker-compose.yml | ||
OVERLOADS.md | ||
Makefile | ||
Makefile |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
15.14.0 | ||
16.9.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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,56 @@ | ||
FROM ruby:2.7.5 | ||
FROM ruby:3.0.6-slim as builder | ||
|
||
ENV RAILS_ENV=production \ | ||
SECRET_KEY_BASE=dummy | ||
|
||
WORKDIR /app | ||
|
||
# Install NodeJS | ||
RUN --mount=type=cache,target=/var/cache/apt \ | ||
RUN apt-get update && \ | ||
apt-get -y install libpq-dev curl git libicu-dev build-essential && \ | ||
curl https://deb.nodesource.com/setup_16.x | bash && \ | ||
apt install -y nodejs && \ | ||
apt update && \ | ||
npm install -g [email protected] && \ | ||
apt-get install -y nodejs && \ | ||
npm install --global yarn && \ | ||
apt install -y libicu-dev postgresql-client && \ | ||
gem install bundler:2.4.6 && \ | ||
rm -rf /var/lib/apt/lists/* | ||
gem install bundler:2.4.9 | ||
|
||
COPY Gemfile* ./ | ||
RUN bundle config set --local without 'development test' && bundle install | ||
RUN bundle config set --local without 'development test' && \ | ||
bundle install -j"$(nproc)" | ||
|
||
COPY package* ./ | ||
COPY yarn.lock . | ||
COPY packages packages | ||
RUN yarn install | ||
RUN yarn install --frozen-lockfile | ||
|
||
COPY . . | ||
|
||
RUN bundle exec bootsnap precompile --gemfile app/ lib/ config/ bin/ db/ && bundle exec rails assets:precompile | ||
RUN bundle exec bootsnap precompile --gemfile app/ lib/ config/ bin/ db/ && \ | ||
bundle exec rails assets:precompile && \ | ||
bundle exec rails deface:precompile | ||
|
||
# Configure endpoint. | ||
COPY ./entrypoint.sh /usr/bin/ | ||
RUN chmod +x /usr/bin/entrypoint.sh | ||
ENTRYPOINT ["entrypoint.sh"] | ||
EXPOSE 3000 | ||
RUN rm -rf node_modules tmp/cache vendor/bundle spec \ | ||
&& rm -rf /usr/local/bundle/cache/*.gem \ | ||
&& find /usr/local/bundle/gems/ -name "*.c" -delete \ | ||
&& find /usr/local/bundle/gems/ -name "*.o" -delete \ | ||
&& find /usr/local/bundle/gems/ -type d -name "spec" -prune -exec rm -rf {} \; \ | ||
&& rm -rf log/*.log | ||
|
||
FROM ruby:3.0.6-slim as runner | ||
|
||
ENV RAILS_ENV=production \ | ||
SECRET_KEY_BASE=dummy \ | ||
RAILS_LOG_TO_STDOUT=true | ||
|
||
RUN apt update && \ | ||
apt install -y postgresql-client imagemagick libproj-dev proj-bin libjemalloc2 && \ | ||
gem install bundler:2.4.9 | ||
|
||
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] | ||
WORKDIR /app | ||
|
||
COPY --from=builder /usr/local/bundle /usr/local/bundle | ||
COPY --from=builder /app /app | ||
|
||
ENV LD_PRELOAD="libjemalloc.so.2" \ | ||
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:5000,muzzy_decay_ms:5000,narenas:2" | ||
|
||
EXPOSE 3000 | ||
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# Builder Stage | ||
FROM ruby:3.0.6-slim as builder | ||
|
||
ENV RAILS_ENV=production \ | ||
SECRET_KEY_BASE=dummy | ||
|
||
WORKDIR /app | ||
|
||
RUN apt-get update -q && \ | ||
apt-get install -yq libpq-dev curl git libicu-dev build-essential openssl && \ | ||
curl https://deb.nodesource.com/setup_16.x | bash && \ | ||
apt-get install -y nodejs && \ | ||
apt-get clean && \ | ||
rm -rf /var/lib/apt/lists/* && \ | ||
npm install --global yarn && \ | ||
gem install bundler:2.4.9 | ||
|
||
COPY Gemfile Gemfile.lock ./ | ||
RUN bundle config set --local without 'development test' && \ | ||
bundle install -j"$(nproc)" | ||
|
||
COPY package.json yarn.lock ./ | ||
COPY packages packages | ||
RUN yarn install --frozen-lock | ||
|
||
COPY . . | ||
|
||
RUN bundle exec bootsnap precompile --gemfile app/ lib/ config/ bin/ db/ && \ | ||
bundle exec rails deface:precompile && \ | ||
bundle exec rails assets:precompile | ||
|
||
run mkdir certificate-https-local | ||
RUN openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=France/L=Paris/O=decidim/CN=decidim.eu" -keyout ./certificate-https-local/key.pem -out ./certificate-https-local/cert.pem; | ||
|
||
# Runner Stage | ||
FROM ruby:3.0.6-slim as runner | ||
|
||
ENV RAILS_ENV=production \ | ||
SECRET_KEY_BASE=dummy \ | ||
RAILS_LOG_TO_STDOUT=true \ | ||
LD_PRELOAD="libjemalloc.so.2" \ | ||
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:5000,muzzy_decay_ms:5000,narenas:2" | ||
|
||
WORKDIR /app | ||
|
||
RUN apt-get update -q && \ | ||
apt-get install -yq postgresql-client imagemagick libproj-dev proj-bin libjemalloc2 && \ | ||
apt-get clean && \ | ||
rm -rf /var/lib/apt/lists/* && \ | ||
gem install bundler:2.4.9 | ||
|
||
COPY --from=builder /usr/local/bundle /usr/local/bundle | ||
COPY --from=builder /app /app | ||
|
||
EXPOSE 3000 | ||
CMD ["bundle", "exec", "rails", "server", "-b", "ssl://0.0.0.0:3000?key=/app/certificate-https-local/key.pem&cert=/app/certificate-https-local/cert.pem"] |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,83 +1,36 @@ | ||
#### Terraform | Scaleway provider | ||
init-scw: | ||
terraform -chdir=deploy/providers/scaleway init | ||
|
||
plan-scw: | ||
@make init-scw | ||
terraform -chdir=deploy/providers/scaleway plan | ||
|
||
deploy-scw: | ||
@make init-scw | ||
terraform -chdir=deploy/providers/scaleway apply | ||
|
||
destroy-scw: | ||
terraform -chdir=deploy/providers/scaleway destroy | ||
|
||
### Docker usage | ||
run: up | ||
@make create-seeds | ||
|
||
# Docker images commands | ||
up: | ||
docker-compose -f docker-compose.local.yml up --build -d | ||
@make setup-database | ||
|
||
REGISTRY := rg.fr-par.scw.cloud | ||
NAMESPACE := decidim-app | ||
VERSION := latest | ||
IMAGE_NAME := decidim-app | ||
TAG := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_NAME):$(VERSION) | ||
# Stops containers and remove volumes | ||
teardown: | ||
docker-compose -f docker-compose.local.yml down -v --rmi all | ||
|
||
login: | ||
docker login $(REGISTRY) -u nologin -p $(SCW_SECRET_TOKEN) | ||
create-database: | ||
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:create' | ||
|
||
build-classic: | ||
docker build -t $(IMAGE_NAME):$(VERSION) . | ||
build-scw: | ||
docker build -t $(TAG) . | ||
push: | ||
@make build-scw | ||
@make login | ||
docker push $(TAG) | ||
pull: | ||
@make build-scw | ||
docker pull $(TAG) | ||
setup-database: create-database | ||
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:migrate' | ||
|
||
# Bundle commands | ||
create-database: | ||
docker-compose run app bundle exec rails db:create | ||
run-migrations: | ||
docker-compose run app bundle exec rails db:migrate | ||
# Create seeds | ||
create-seeds: | ||
docker-compose run app bundle exec rails db:seed | ||
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:schema:load db:seed' | ||
|
||
# Database commands | ||
# Restore dump | ||
restore-dump: | ||
bundle exec rake restore_dump | ||
bundle exec rake restore_dump | ||
|
||
# Start commands seperated by context | ||
start: | ||
docker-compose up | ||
shell: | ||
docker-compose -f docker-compose.local.yml exec app /bin/bash | ||
|
||
start-dumped-decidim: | ||
@make create-database | ||
@make -i restore-dump | ||
@make run-migrations | ||
@make start | ||
start-seeded-decidim: | ||
@make create-database | ||
@make run-migrations | ||
@make create-seeds | ||
@make start | ||
start-clean-decidim: | ||
@make create-database | ||
@make run-migrations | ||
@make start | ||
restart: | ||
docker-compose -f docker-compose.local.yml up -d | ||
|
||
# Utils commands | ||
rails-console: | ||
docker exec -it decidim-app_app_1 rails c | ||
connect-app: | ||
docker exec -it decidim-app_app_1 bash | ||
status: | ||
docker-compose -f docker-compose.local.yml ps | ||
|
||
# Stop and delete commands | ||
stop: | ||
docker-compose down | ||
delete: | ||
@make stop | ||
docker volume prune | ||
logs: | ||
docker-compose -f docker-compose.local.yml logs app |
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
Oops, something went wrong.