Getting things ready for deploy to Heroku
This commit is contained in:
parent
f9e183e58e
commit
6295e51d90
|
@ -0,0 +1,21 @@
|
||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
build_and_deploy:
|
||||||
|
docker:
|
||||||
|
- image: docker:18.09
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- setup_remote_docker
|
||||||
|
- run: apk add --no-cache --no-progress bash curl make
|
||||||
|
- run: curl https://cli-assets.heroku.com/install.sh | sh
|
||||||
|
- run: make deploy
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
ci:
|
||||||
|
jobs:
|
||||||
|
- build_and_deploy:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: master
|
||||||
|
tags:
|
||||||
|
ignore: /.*/
|
|
@ -0,0 +1 @@
|
||||||
|
.gitignore
|
|
@ -0,0 +1,21 @@
|
||||||
|
FROM ubuntu:focal
|
||||||
|
|
||||||
|
ARG UID
|
||||||
|
|
||||||
|
COPY scripts/docker-install.bash /tmp/
|
||||||
|
RUN /tmp/docker-install.bash "$UID"
|
||||||
|
|
||||||
|
USER $UID
|
||||||
|
WORKDIR /home/docker
|
||||||
|
EXPOSE 6119
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/pid1.bash"]
|
||||||
|
COPY scripts/pid1.bash /usr/local/bin/
|
||||||
|
|
||||||
|
RUN sudo deluser docker sudo
|
||||||
|
ADD --chown=docker:docker . /home/docker/src
|
||||||
|
WORKDIR src
|
||||||
|
RUN yarn install
|
||||||
|
RUN yarn run backend
|
||||||
|
RUN yarn run frontend
|
||||||
|
CMD yarn run server
|
20
Makefile
20
Makefile
|
@ -8,7 +8,21 @@ help: ## Show this message
|
||||||
sed 's/:[^#]*[#]# /|/' | \
|
sed 's/:[^#]*[#]# /|/' | \
|
||||||
column -t -s'|' >&2
|
column -t -s'|' >&2
|
||||||
|
|
||||||
|
.PHONY: image
|
||||||
|
image-dev: ## Build Docker image for development
|
||||||
|
scripts/docker.bash build . -f Dockerfile.dev -t riju --build-arg "UID=$(UID)"
|
||||||
|
|
||||||
|
.PHONY: image
|
||||||
|
image-prod: ## Build Docker image for production
|
||||||
|
scripts/docker.bash build . -f Dockerfile.prod -t riju:prod --build-arg "UID=$(UID)"
|
||||||
|
|
||||||
.PHONY: docker
|
.PHONY: docker
|
||||||
docker: ## Run shell with source code and deps inside Docker
|
docker: image-dev ## Run shell with source code and deps inside Docker
|
||||||
scripts/docker.bash build . -t riju --build-arg "UID=$(UID)"
|
scripts/docker.bash run -it --rm -v "$(PWD):/home/docker/src" -p 6119:6119 riju bash
|
||||||
scripts/docker.bash run -it --rm -v "$(PWD):/home/docker/src" -p 6119:6119 riju
|
|
||||||
|
.PHONY: deploy
|
||||||
|
deploy: image-prod ## Deploy to Heroku
|
||||||
|
scripts/docker.bash tag riju:prod registry.heroku.com/riju-sandbox/web
|
||||||
|
heroku auth:token | scripts/docker.bash login --username=_ --password-stdin registry.heroku.com
|
||||||
|
scripts/docker.bash push registry.heroku.com/riju-sandbox/web
|
||||||
|
heroku container:release web -a riju-sandbox
|
||||||
|
|
|
@ -149,7 +149,7 @@ int main() {
|
||||||
monacoLang: "bat",
|
monacoLang: "bat",
|
||||||
repl: "wine cmd",
|
repl: "wine cmd",
|
||||||
main: "main.bat",
|
main: "main.bat",
|
||||||
run: `pkill wineserver64; while pgrep wineserver64 >/dev/null; do sleep 0.05; done; wine cmd /k main.bat`,
|
run: `wine cmd /k main.bat`,
|
||||||
template: `echo "Hello, world!"
|
template: `echo "Hello, world!"
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<link rel="stylesheet" href="/css/index.css" />
|
<link rel="stylesheet" href="/css/index.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Riju: online access to any programming language</h1>
|
<h1>Riju: online playground for every programming language</h1>
|
||||||
<i>Select a language to get started immediately:</i>
|
<i>Pick your favorite language to get started:</i>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<% for (const [id, {name}] of Object.entries(langs)) { %>
|
<% for (const [id, {name}] of Object.entries(langs)) { %>
|
||||||
<a href=<%= "/" + encodeURIComponent(id) %> class="language">
|
<a href=<%= "/" + encodeURIComponent(id) %> class="language">
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
"backend-dev": "tsc --watch",
|
"backend-dev": "tsc --watch",
|
||||||
"frontend": "webpack --production",
|
"frontend": "webpack --production",
|
||||||
"frontend-dev": "webpack --development --watch",
|
"frontend-dev": "webpack --development --watch",
|
||||||
"server": "node server.js",
|
"server": "node backend/out/server.js",
|
||||||
"server-dev": "watchexec -w backend/out -r -n node backend/out/server.js"
|
"server-dev": "watchexec -w backend/out -r -n node backend/out/server.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@ export SHELL="$(which bash)"
|
||||||
|
|
||||||
export HOST=0.0.0.0
|
export HOST=0.0.0.0
|
||||||
|
|
||||||
if [[ -d src ]]; then
|
if [[ -d /home/docker/src ]]; then
|
||||||
cd src
|
cd /home/docker/src
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
Loading…
Reference in New Issue