Attempt at drone deploy
Some checks reported errors
Some checks reported errors
This commit is contained in:
parent
cc07af72c5
commit
dfffae35b2
32
.drone.yml
Normal file
32
.drone.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: publish pipeline
|
||||||
|
steps:
|
||||||
|
- name: publish jekyll container
|
||||||
|
image: plugins/docker
|
||||||
|
settings: &docker-build-settings
|
||||||
|
username: 3wordchant
|
||||||
|
password:
|
||||||
|
from_secret: git_autonomic_zone_token_3wc
|
||||||
|
repo: git.autonomic.zone/autonomic-cooperative/kcl-site
|
||||||
|
auto_tag: true
|
||||||
|
registry: git.autonomic.zone
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- custom
|
||||||
|
|
||||||
|
- name: deploy-site
|
||||||
|
image: git.coopcloud.tech/coop-cloud/docker-cp-deploy:latest
|
||||||
|
settings:
|
||||||
|
host: small-clients.autonomic.zone
|
||||||
|
service: kcl_autonomic_zone_app
|
||||||
|
source: /srv/jekyll/dist/
|
||||||
|
dest: /usr/share/nginx/html/
|
||||||
|
exec_pre: rm -rf /usr/share/nginx/html/*
|
||||||
|
deploy_key:
|
||||||
|
from_secret: drone_ssh_swarm-demo.autonomic.zone
|
||||||
|
depends_on:
|
||||||
|
- publish-jekyll-container
|
35
Dockerfile
35
Dockerfile
@ -1,30 +1,35 @@
|
|||||||
FROM ruby:3.0.0 as jekyll
|
# Stage 1: Build the Jekyll site
|
||||||
|
FROM ruby:3.0.0 AS builder
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
build-essential \
|
||||||
git \
|
git \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# used in the jekyll-server image, which is FROM this image
|
# Install the specific version of Bundler
|
||||||
COPY docker-entrypoint.sh /usr/local/bin/
|
RUN gem install bundler:2.2.13
|
||||||
|
|
||||||
RUN gem update --system && gem install jekyll && gem cleanup
|
WORKDIR /srv/jekyll
|
||||||
|
|
||||||
EXPOSE 4000
|
# Copy Gemfile and Gemfile.lock and install dependencies
|
||||||
|
COPY Gemfile Gemfile.lock ./
|
||||||
|
RUN bundle _2.2.13_ install
|
||||||
|
|
||||||
WORKDIR /site
|
# Copy the rest of the application files
|
||||||
|
COPY . .
|
||||||
|
|
||||||
ENTRYPOINT [ "jekyll" ]
|
# Build the Jekyll site
|
||||||
|
RUN jekyll build -d /dist
|
||||||
|
|
||||||
CMD [ "--help" ]
|
# Stage 2: Serve the Jekyll site using Nginx
|
||||||
|
FROM nginx:1.26.0
|
||||||
|
|
||||||
# build from the image we just built with different metadata
|
WORKDIR /usr/share/nginx/html
|
||||||
FROM jekyll as jekyll-serve
|
|
||||||
|
|
||||||
COPY --from=jekyll /usr/local/bin/docker-entrypoint.sh /usr/local/bin/
|
# Copy the generated site from the builder stage
|
||||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
COPY --from=builder /dist .
|
||||||
|
|
||||||
# on every container start, check if Gemfile exists and warn if it's missing
|
# Expose port 80 for the web server
|
||||||
ENTRYPOINT [ "docker-entrypoint.sh" ]
|
EXPOSE 80
|
||||||
|
|
||||||
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
30
Dockerfile.dev
Normal file
30
Dockerfile.dev
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
FROM ruby:3.0.0 as jekyll
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# used in the jekyll-server image, which is FROM this image
|
||||||
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
|
||||||
|
RUN gem update --system && gem install jekyll && gem cleanup
|
||||||
|
|
||||||
|
EXPOSE 4000
|
||||||
|
|
||||||
|
WORKDIR /site
|
||||||
|
|
||||||
|
ENTRYPOINT [ "jekyll" ]
|
||||||
|
|
||||||
|
CMD [ "--help" ]
|
||||||
|
|
||||||
|
# build from the image we just built with different metadata
|
||||||
|
FROM jekyll as jekyll-serve
|
||||||
|
|
||||||
|
COPY --from=jekyll /usr/local/bin/docker-entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
# on every container start, check if Gemfile exists and warn if it's missing
|
||||||
|
ENTRYPOINT [ "docker-entrypoint.sh" ]
|
||||||
|
|
||||||
|
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
|
9
docker-compose.dev.yml
Normal file
9
docker-compose.dev.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# no version needed since 2020
|
||||||
|
|
||||||
|
services:
|
||||||
|
jekyll:
|
||||||
|
image: git.autonomic.zone/autonomic-cooperative/kcl-site-dev:latest
|
||||||
|
volumes:
|
||||||
|
- .:/site
|
||||||
|
ports:
|
||||||
|
- '4000:4000'
|
@ -1,9 +1,37 @@
|
|||||||
# no version needed since 2020
|
---
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
jekyll:
|
app:
|
||||||
image: git.autonomic.zone/autonomic-cooperative/kcl-site:latest
|
image: git.autonomic.zone/autonomic-cooperative/kcl-site:latest
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
volumes:
|
volumes:
|
||||||
- .:/site
|
- html_content:/usr/share/nginx/html
|
||||||
ports:
|
configs:
|
||||||
- '4000:4000'
|
- source: nginx_conf
|
||||||
|
target: /etc/nginx/nginx.conf
|
||||||
|
deploy:
|
||||||
|
update_config:
|
||||||
|
failure_action: rollback
|
||||||
|
order: start-first
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.services.${STACK_NAME}-jekyll.loadbalancer.server.port=80"
|
||||||
|
- "traefik.http.routers.${STACK_NAME}-jekyll.rule=Host(`${DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.${STACK_NAME}-jekyll.entrypoints=web-secure"
|
||||||
|
- "traefik.http.routers.${STACK_NAME}-jekyll.tls.certresolver=production"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
internal:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
html_content:
|
||||||
|
|
||||||
|
configs:
|
||||||
|
nginx_conf:
|
||||||
|
name: ${STACK_NAME}_nginx_conf_${NGINX_CONF_VERSION}
|
||||||
|
file: nginx.conf
|
||||||
|
template_driver: golang
|
||||||
|
36
nginx.conf
Normal file
36
nginx.conf
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
gzip on;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_comp_level 6;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /error_page.html {
|
||||||
|
internal;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(jpg|jpeg|png|gif|ico|css|js|htm|html)$ {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
expires 30d;
|
||||||
|
add_header Pragma public;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 404 /error_page.html;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user