Merge pull request 'fun, image tagging, and SOURCE_TAG' (#53) from kouhai/tagging into main
ci/woodpecker/push/woodpecker Pipeline was successful Details

Reviewed-on: #53
Ariadne Conill 2023-04-16 02:11:06 +00:00
commit 9a600c0028
8 changed files with 62 additions and 43 deletions

View File

@ -14,7 +14,7 @@
# ----------
# This identifies your server and cannot be changed safely later
# ----------
LOCAL_DOMAIN=example.com
LOCAL_DOMAIN=localhost
# Use this only if you need to run mastodon on a different domain than the one used for federation.
# You can read more about this option on https://docs.joinmastodon.org/admin/config/#web-domain
@ -25,6 +25,7 @@ LOCAL_DOMAIN=example.com
# handler@example2.com etc. for the same user. LOCAL_DOMAIN should not
# be added. Comma separated values
# ALTERNATE_DOMAINS=example1.com,example2.com
ALTERNATE_DOMAINS=mastodon.internal
# Use HTTP proxy for outgoing request (optional)
# http_proxy=http://gateway.local:8118
@ -43,14 +44,14 @@ LOCAL_DOMAIN=example.com
# Redis
# -----
REDIS_HOST=localhost
REDIS_HOST=redis
REDIS_PORT=6379
# PostgreSQL
# ----------
DB_HOST=/var/run/postgresql
DB_USER=mastodon
DB_HOST=db
DB_USER=postgres
DB_NAME=mastodon_production
DB_PASS=
DB_PORT=5432

View File

@ -1,19 +1,38 @@
variables:
docker-step: &docker-step
image: docker:rc-git
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
NAME: gitea.treehouse.systems/treehouse/mastodon
pipeline:
build:
image: docker:rc-git
volumes:
- /var/run/docker.sock:/var/run/docker.sock
<<: *docker-step
commands:
- docker version
- docker image build -f Dockerfile . -t gitea.treehouse.systems/treehouse/mastodon:latest
- docker image build -f Dockerfile --build-arg SOURCE_TAG=$CI_COMMIT_SHA . -t $NAME:latest
- docker tag $NAME:latest $NAME:$CI_COMMIT_SHA
tag-nightly:
<<: *docker-step
commands:
- docker tag $NAME:latest $NAME:$(date -Idate -u)
# maybe we can use tags someday,,,
# tag-tag:
# image: *docker-git
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# commands:
# - docker tag $NAME:latest $NAME:$CI_COMMIT_TAG
# when:
# event: tag
push:
image: docker:rc-git
volumes:
- /var/run/docker.sock:/var/run/docker.sock
<<: *docker-step
commands:
- echo $REGISTRY_SECRET | docker login -u ariadne --password-stdin gitea.treehouse.systems
- docker image push --all-tags gitea.treehouse.systems/treehouse/mastodon
- docker image push --all-tags $NAME
when:
event: [push, tag]
branch: main

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.4
# This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
ARG NODE_VERSION="16.19-bullseye-slim"
ARG NODE_VERSION="18.15-bullseye-slim"
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby
FROM node:${NODE_VERSION} as build
@ -8,7 +8,8 @@ FROM node:${NODE_VERSION} as build
COPY --link --from=ruby /opt/ruby /opt/ruby
ENV DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin"
PATH="${PATH}:/opt/ruby/bin" \
NODE_OPTIONS=--openssl-legacy-provider
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
@ -50,15 +51,17 @@ ENV RAILS_ENV="production" \
# Precompile assets
# TODO(kouhai): we're currently patching node_modules because of emoji-mart.
# we should integrate our own fork instead.
COPY ./emoji_data/all.json ./node_modules/emoji-mart/data/all.json
COPY --link . /opt/mastodon
ENV OTP_SECRET=precompile_placeholder \
SECRET_KEY_BASE=precompile_placeholder \
RAKE_NO_YARN_INSTALL_HACK=1
RUN bundle exec rails assets:precompile
RUN mv ./emoji_data/all.json ./node_modules/emoji-mart/data/all.json && \
bundle exec rails assets:precompile
FROM node:${NODE_VERSION}
ARG SOURCE_TAG=''
ARG UID="991"
ARG GID="991"
@ -96,13 +99,13 @@ RUN apt-get update && \
# Note: no, cleaning here since Debian does this automatically
# See the file /etc/apt/apt.conf.d/docker-clean within the Docker image's filesystem
COPY --link --chown=mastodon:mastodon . /opt/mastodon
COPY --link --chown=mastodon:mastodon --from=build /opt/mastodon /opt/mastodon
ENV RAILS_ENV="production" \
NODE_ENV="production" \
RAILS_SERVE_STATIC_FILES="true" \
BIND="0.0.0.0"
BIND="0.0.0.0" \
SOURCE_TAG="${SOURCE_TAG}"
# Set the run user
USER mastodon

View File

@ -910,4 +910,4 @@ RUBY VERSION
ruby 3.0.5p211
BUNDLED WITH
2.3.26
2.4.6

View File

@ -2,16 +2,17 @@ version: '3'
services:
db:
restart: always
image: postgres:14-alpine
image: postgres:15-alpine
shm_size: 256mb
networks:
- internal_network
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
volumes:
- ./postgres14:/var/lib/postgresql/data
- ./data/postgres.15:/var/lib/postgresql/data
environment:
- 'POSTGRES_HOST_AUTH_METHOD=trust'
- 'POSTGRES_USER=mastodon'
redis:
restart: always
@ -21,7 +22,7 @@ services:
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
volumes:
- ./redis:/data
- ./data/redis:/data
# es:
# restart: always
@ -56,7 +57,7 @@ services:
web:
build: .
image: tootsuite/mastodon
image: gitea.treehouse.systems/treehouse/mastodon:latest
restart: always
env_file: .env.production
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
@ -68,6 +69,8 @@ services:
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
expose:
- 3000
ports:
- 3000:3000
labels:
- traefik.enable=true
- traefik.http.routers.web.rule=Host(`social-dev.treehouse.systems`)
@ -82,10 +85,11 @@ services:
# - es
volumes:
- ./public/system:/mastodon/public/system
# - ./data/postgres:/var/lib/postgresql/data
streaming:
build: .
image: tootsuite/mastodon
image: gitea.treehouse.systems/treehouse/mastodon:latest
restart: always
env_file: .env.production
command: node ./streaming
@ -111,7 +115,7 @@ services:
sidekiq:
build: .
image: tootsuite/mastodon
image: gitea.treehouse.systems/treehouse/mastodon:latest
restart: always
env_file: .env.production
command: bundle exec sidekiq

View File

@ -21,7 +21,7 @@ module Mastodon
end
def suffix
'+glitch+th'
'+glitch.th'
end
def to_a
@ -42,7 +42,9 @@ module Mastodon
# specify git tag or commit hash here
def source_tag
ENV.fetch('SOURCE_TAG', nil)
tag = ENV.fetch('SOURCE_TAG', nil)
return if tag.nil? || tag.empty?
tag
end
def source_url

View File

@ -165,7 +165,8 @@
"yargs": "^17.7.0"
},
"resolutions": {
"kind-of": "^6.0.3"
"kind-of": "^6.0.3",
"@babel/types": "^7.21.3"
},
"optionalDependencies": {
"bufferutil": "^4.0.7",

View File

@ -1505,25 +1505,14 @@ __metadata:
languageName: node
linkType: hard
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
version: 7.21.0
resolution: "@babel/types@npm:7.21.0"
"@babel/types@npm:^7.21.3":
version: 7.21.3
resolution: "@babel/types@npm:7.21.3"
dependencies:
"@babel/helper-string-parser": ^7.19.4
"@babel/helper-validator-identifier": ^7.19.1
to-fast-properties: ^2.0.0
checksum: dbcdda202b3a2bfd59e4de880ce38652f1f8957893a9751be069ac86e47ad751222070fe6cd92220214d77973f1474e4e1111c16dc48199dfca1489c0ee8c0c5
languageName: node
linkType: hard
"@babel/types@npm:^7.8.3":
version: 7.21.2
resolution: "@babel/types@npm:7.21.2"
dependencies:
"@babel/helper-string-parser": ^7.19.4
"@babel/helper-validator-identifier": ^7.19.1
to-fast-properties: ^2.0.0
checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff
checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35
languageName: node
linkType: hard