Browse Source

Optimize docker nonsense

master
Wesley Kerfoot 4 years ago
parent
commit
ce42426c02
  1. 31
      app/Dockerfile
  2. 2229
      app/package-lock.json
  3. 6
      app/package.json
  4. 2
      app/rollup.config.editor.js
  5. 2
      app/rollup.config.riotblog.js
  6. 2
      app/styles/riotblog.scss
  7. 4
      app/website.py
  8. 12
      docker-compose-dev.yml
  9. 5
      docker-compose.yml

31
app/Dockerfile

@ -2,6 +2,8 @@ FROM ubuntu:latest
MAINTAINER wes kerfoot "wjak56@gmail.com" MAINTAINER wes kerfoot "wjak56@gmail.com"
RUN mkdir -p /{styles,scripts} && mkdir -p /src
RUN apt-get update -y RUN apt-get update -y
RUN apt-get install -y curl RUN apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_13.x | bash RUN curl -sL https://deb.nodesource.com/setup_13.x | bash
@ -9,20 +11,27 @@ RUN apt-get update -y
RUN apt-get install -y python3-pip python3-dev build-essential sassc jq nodejs RUN apt-get install -y python3-pip python3-dev build-essential sassc jq nodejs
RUN npm install -g uglifycss uglifyjs RUN npm install -g uglifycss uglifyjs
COPY . ./src COPY requirements.txt /requirements.txt
COPY run.sh /run.sh RUN pip3 install -r /requirements.txt
COPY blogPosts.json /blogPosts.json
COPY package-lock.json package.json /
RUN npm install
COPY rollup.config.riotblog.js rollup.config.editor.js /scripts/
COPY link.json list.js admin.py posts.py projects.py website.py ./src/
WORKDIR /src # Docker has ridiculous behaviour with regards to COPY
# COPY foo bar /baz/ won't actually copy the directories, but their contents
COPY templates /src/templates
COPY images /src/images
COPY blogPosts.json run.sh /
RUN npm install && pip3 install -r /src/requirements.txt && \ COPY scripts /scripts
mkdir -p ./build/styles ./build/scripts && \ RUN npm run-script build_riotblog && npm run-script build_editor
npm run-script build_riotblog && \
npm run-script build_editor
RUN sassc ./styles/riotblog.scss > ./styles/riotblog.intermediate.min.css && \ COPY styles /styles
cp ./styles/*.css ./build/styles/ && \ RUN sassc /styles/riotblog.scss > /styles/riotblog.intermediate.min.css && \
uglifycss ./styles/*.css > ./build/styles/riotblog.min.css uglifycss /styles/*.css > /styles/riotblog.min.css
ENTRYPOINT ["/bin/bash", "/run.sh"] ENTRYPOINT ["/bin/bash", "/run.sh"]
CMD ["/src/website.py"] CMD ["/src/website.py"]

2229
app/package-lock.json

File diff suppressed because it is too large

6
app/package.json

@ -2,10 +2,10 @@
"name": "riotblog", "name": "riotblog",
"version": "1.0.0", "version": "1.0.0",
"description": "Riot Blog", "description": "Riot Blog",
"main": "src/scripts/riotblog.js", "main": "/scripts/riotblog.js",
"scripts": { "scripts": {
"build_riotblog": "rollup /src/scripts/riotblog.js --config /src/rollup.config.riotblog.js", "build_riotblog": "rollup /scripts/riotblog.js --config /scripts/rollup.config.riotblog.js",
"build_editor": "rollup /src/scripts/editor.js --config /src/rollup.config.editor.js" "build_editor": "rollup /scripts/editor.js --config /scripts/rollup.config.editor.js"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

2
app/rollup.config.editor.js

@ -24,4 +24,4 @@ function makeBundle(item) {
}; };
} }
export default makeBundle(["./scripts/editor.js", "./build/scripts/editor.min.js"]); export default makeBundle(["./scripts/editor.js", "/scripts/editor.min.js"]);

2
app/rollup.config.riotblog.js

@ -24,4 +24,4 @@ function makeBundle(item) {
}; };
} }
export default makeBundle(["./scripts/riotblog.js", "./build/scripts/riotblog.min.js"]); export default makeBundle(["./scripts/riotblog.js", "/scripts/riotblog.min.js"]);

2
app/styles/riotblog.scss

@ -6,7 +6,7 @@ $branding: black;
$branding2: blue; $branding2: blue;
$branding3: #1b4c6c; $branding3: #1b4c6c;
$menuWidth: 60px; $menuWidth: 65px;
$navbarHeight: 100px; $navbarHeight: 100px;

4
app/website.py

@ -69,11 +69,11 @@ def NeverWhere(configfile=None):
@app.route("/blog/styles/<path:path>") @app.route("/blog/styles/<path:path>")
def send_styles(path): def send_styles(path):
return send_from_directory("build/styles", path) return send_from_directory("/styles", path)
@app.route("/blog/scripts/<path:path>") @app.route("/blog/scripts/<path:path>")
def send_scripts(path): def send_scripts(path):
return send_from_directory("build/scripts", path) return send_from_directory("/scripts", path)
# Set template variables to be injected # Set template variables to be injected
@app.context_processor @app.context_processor

12
docker-compose-dev.yml

@ -1,19 +1,24 @@
version: '3' version: '3.4'
services: services:
couch: couch:
restart: always restart: always
build: couchdb build: couchdb
ports: ports:
- "127.0.0.1:5984:5984" - "127.0.0.1:5984:5984"
env_file:
- ".env"
environment: environment:
- "COUCHDB_USER" - "COUCHDB_USER"
- "COUCHDB_PASSWORD" - "COUCHDB_PASSWORD"
- "COUCHDB_NAME" - "COUCHDB_NAME"
web: web:
restart: always restart: always
build: app build:
context: app
ports: ports:
- "127.0.0.1:6969:6969" - "80"
env_file:
- ".env"
network_mode: host network_mode: host
depends_on: depends_on:
- "couch" - "couch"
@ -22,3 +27,4 @@ services:
- "COUCHDB_PASSWORD" - "COUCHDB_PASSWORD"
- "COUCHDB_NAME" - "COUCHDB_NAME"
- "SECRET_KEY" - "SECRET_KEY"
- "ADMIN_PASSWORD"

5
docker-compose.yml

@ -6,7 +6,7 @@ services:
ports: ports:
- "127.0.0.1:5984:5984" - "127.0.0.1:5984:5984"
env_file: env_file:
- ".envrc" - ".env"
environment: environment:
- "COUCHDB_USER" - "COUCHDB_USER"
- "COUCHDB_PASSWORD" - "COUCHDB_PASSWORD"
@ -17,7 +17,7 @@ services:
ports: ports:
- "80" - "80"
env_file: env_file:
- ".envrc" - ".env"
network_mode: host network_mode: host
depends_on: depends_on:
- "couch" - "couch"
@ -26,3 +26,4 @@ services:
- "COUCHDB_PASSWORD" - "COUCHDB_PASSWORD"
- "COUCHDB_NAME" - "COUCHDB_NAME"
- "SECRET_KEY" - "SECRET_KEY"
- "ADMIN_PASSWORD"

Loading…
Cancel
Save