Docker should now work

This commit is contained in:
Chad Freeman 2024-10-13 17:16:06 -04:00
parent 9918001d29
commit 7671af5cbe
11 changed files with 1551 additions and 40 deletions

21
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,21 @@
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: "Build app"
run: |
deno run build
- name: "Zip container"
run: |
zip -r container.zip ./container
- name: "Upload to release"
uses: svenstaro/upload-release-action@2.9.0
with:
file: "./container.zip"

View file

@ -1,38 +1,2 @@
# create-svelte
# bluffit
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte).
## Creating a project
If you're seeing this, you've probably already done this step. Congrats!
```bash
# create a new project in the current directory
npm create svelte@latest
# create a new project in my-app
npm create svelte@latest my-app
```
## Developing
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```bash
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.
> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.

3
container/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
app
run
.vscode

15
container/Dockerfile Normal file
View file

@ -0,0 +1,15 @@
FROM denoland/deno:ubuntu-2.0.0
# This is the app that runs on port (env PORT)
COPY app/ /home/app
# This is the proxy that
# runs the app in the background
# AND lisens to (env SOCK) and forwards to localhost:(env PORT)
COPY proxy.ts /home/proxy.ts
RUN mkdir -p /var/run/proxy
ENV PORT=80
ENV SOCK="/var/run/proxy/app.sock"
ENTRYPOINT [ "deno", "run", "-A", "--unstable-worker-options", "./home/proxy.ts" ]

View file

@ -0,0 +1,9 @@
version: '3'
name: "bluffit"
services:
app:
container_name: "app"
build: .
volumes:
- ./run/:/var/run/proxy/

22
container/proxy.ts Normal file
View file

@ -0,0 +1,22 @@
const SOCKET = Deno.env.get("SOCK");
const PORT = Deno.env.get("PORT");
if(!SOCKET || !PORT) {
throw new Error("Missing port and socket env vars")
}
const worker = new Worker(new URL("./app/index.js", import.meta.url), {
deno: {
permissions: 'inherit'
},
name: 'server',
type: 'module'
})
worker.onerror = (e: ErrorEvent) => {
throw new Error(e.message)
}
Deno.serve({ path: SOCKET }, async (req) => {
return await fetch(`http://localhost:${PORT}`, req)
})

6
container/run.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
docker-compose down
rm -rf ./run
docker image remove bluffit-app
docker-compose up

12
container/update.sh Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
DIR="$(cd "$(dirname "$0")" && pwd)"
docker-compose down
docker image remove bluffit-app
cd ..
rm -rf "$DIR" &
curl -0 "https://github.com/mavdotjs/bluffit/releases/latest/download/container.zip"
unzip ./container.zip
cd container

1456
deno.lock Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{
"name": "finallydoingthisfunkyahhcardgame",
"name": "bluffit",
"version": "0.0.1",
"private": true,
"scripts": {
@ -23,6 +23,7 @@
"prettier": "^3.1.1",
"prettier-plugin-svelte": "^3.1.2",
"svelte": "^5.0.0-next.1",
"svelte-adapter-deno": "^0.9.1",
"svelte-check": "^4.0.0",
"typescript": "^5.0.0",
"typescript-eslint": "^8.0.0",

View file

@ -1,4 +1,4 @@
import adapter from '@sveltejs/adapter-auto';
import adapter from 'svelte-adapter-deno';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
@ -11,7 +11,9 @@ const config = {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter()
adapter: adapter({
out: './container/app'
})
}
};