th: fun, image tagging, and SOURCE_TAG
parent
0382d1efe7
commit
c9a49fc3dd
|
@ -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:
|
pipeline:
|
||||||
build:
|
build:
|
||||||
image: docker:rc-git
|
<<: *docker-step
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
commands:
|
commands:
|
||||||
- docker version
|
- 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:
|
push:
|
||||||
image: docker:rc-git
|
<<: *docker-step
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
commands:
|
commands:
|
||||||
- echo $REGISTRY_SECRET | docker login -u ariadne --password-stdin gitea.treehouse.systems
|
- 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:
|
when:
|
||||||
event: [push, tag]
|
event: [push, tag]
|
||||||
branch: main
|
branch: main
|
||||||
|
|
15
Dockerfile
15
Dockerfile
|
@ -1,6 +1,6 @@
|
||||||
# syntax=docker/dockerfile:1.4
|
# syntax=docker/dockerfile:1.4
|
||||||
# This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
|
# 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 ghcr.io/moritzheiber/ruby-jemalloc:3.2.1-slim as ruby
|
||||||
FROM node:${NODE_VERSION} as build
|
FROM node:${NODE_VERSION} as build
|
||||||
|
@ -8,7 +8,8 @@ FROM node:${NODE_VERSION} as build
|
||||||
COPY --link --from=ruby /opt/ruby /opt/ruby
|
COPY --link --from=ruby /opt/ruby /opt/ruby
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND="noninteractive" \
|
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"]
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
@ -50,15 +51,17 @@ ENV RAILS_ENV="production" \
|
||||||
# Precompile assets
|
# Precompile assets
|
||||||
# TODO(kouhai): we're currently patching node_modules because of emoji-mart.
|
# TODO(kouhai): we're currently patching node_modules because of emoji-mart.
|
||||||
# we should integrate our own fork instead.
|
# 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 \
|
ENV OTP_SECRET=precompile_placeholder \
|
||||||
SECRET_KEY_BASE=precompile_placeholder \
|
SECRET_KEY_BASE=precompile_placeholder \
|
||||||
RAKE_NO_YARN_INSTALL_HACK=1
|
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}
|
FROM node:${NODE_VERSION}
|
||||||
|
|
||||||
|
ARG SOURCE_TAG=''
|
||||||
ARG UID="991"
|
ARG UID="991"
|
||||||
ARG GID="991"
|
ARG GID="991"
|
||||||
|
|
||||||
|
@ -96,13 +99,13 @@ RUN apt-get update && \
|
||||||
# Note: no, cleaning here since Debian does this automatically
|
# 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
|
# 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
|
COPY --link --chown=mastodon:mastodon --from=build /opt/mastodon /opt/mastodon
|
||||||
|
|
||||||
ENV RAILS_ENV="production" \
|
ENV RAILS_ENV="production" \
|
||||||
NODE_ENV="production" \
|
NODE_ENV="production" \
|
||||||
RAILS_SERVE_STATIC_FILES="true" \
|
RAILS_SERVE_STATIC_FILES="true" \
|
||||||
BIND="0.0.0.0"
|
BIND="0.0.0.0" \
|
||||||
|
SOURCE_TAG="${SOURCE_TAG}"
|
||||||
|
|
||||||
# Set the run user
|
# Set the run user
|
||||||
USER mastodon
|
USER mastodon
|
||||||
|
|
|
@ -21,7 +21,7 @@ module Mastodon
|
||||||
end
|
end
|
||||||
|
|
||||||
def suffix
|
def suffix
|
||||||
'+glitch+th'
|
'+glitch.th'
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_a
|
def to_a
|
||||||
|
@ -42,15 +42,18 @@ module Mastodon
|
||||||
|
|
||||||
# specify git tag or commit hash here
|
# specify git tag or commit hash here
|
||||||
def source_tag
|
def source_tag
|
||||||
ENV.fetch('SOURCE_TAG', nil)
|
tag = ENV.fetch('SOURCE_TAG', nil)
|
||||||
|
return if tag.nil? || tag.empty?
|
||||||
|
tag
|
||||||
end
|
end
|
||||||
|
|
||||||
def source_url
|
def source_url
|
||||||
if source_tag && source_base_url =~ /gitea/
|
tag = source_tag
|
||||||
suffix = if !str[/\H/]
|
if tag && source_base_url =~ /gitea/
|
||||||
"commit/#{source_tag}"
|
suffix = if !tag[/\H/]
|
||||||
|
"commit/#{tag}"
|
||||||
else
|
else
|
||||||
"branch/#{source_tag}"
|
"branch/#{tag}"
|
||||||
end
|
end
|
||||||
"#{source_base_url}/#{suffix}"
|
"#{source_base_url}/#{suffix}"
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue