mirror of
https://github.com/fluencelabs/dashboard
synced 2025-04-25 15:52:13 +00:00
Fix docker image and pipelines (#14)
This commit is contained in:
parent
5919eca242
commit
a60d370424
@ -1,8 +1,9 @@
|
|||||||
name: container
|
name: build dev
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
# branches:
|
branches-ignore:
|
||||||
# - master
|
- master
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@ -53,11 +54,10 @@ jobs:
|
|||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
### Set container tag to 'latest' if branch is master, and to $BRANCH_NAME otherwise
|
### Set version
|
||||||
- if: ${{ env.BRANCH_NAME }} != 'master'
|
- run: echo "VERSION=0.1.${{github.run_number}}" >> $GITHUB_ENV
|
||||||
run: echo "CONTAINER_TAG=${{ env.BRANCH_NAME }}" >> $GITHUB_ENV
|
|
||||||
- if: ${{ env.BRANCH_NAME }} == 'master'
|
- run: echo "CONTAINER_TAG=fluencelabs/dashboard:${{ env.VERSION }}${{ env.BRANCH_NAME }}" >> $GITHUB_ENV
|
||||||
run: echo "CONTAINER_TAG=latest" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
### Build and push docker image
|
### Build and push docker image
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
@ -67,8 +67,6 @@ jobs:
|
|||||||
context: .
|
context: .
|
||||||
file: ./caddy.Dockerfile
|
file: ./caddy.Dockerfile
|
||||||
push: true
|
push: true
|
||||||
tags: fluencelabs/dashboard:${{ env.CONTAINER_TAG }}
|
tags: ${{ env.CONTAINER_TAG }}
|
||||||
- name: Image digest
|
- name: Image digest
|
||||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
|
||||||
# docker commit --change='ENTRYPOINT ["caddy", "file-server", "--root", "/build", "--browse"]' caddy fluencelabs/fluence:demo
|
|
18
.github/workflows/deploy.yml
vendored
18
.github/workflows/deploy.yml
vendored
@ -1,18 +0,0 @@
|
|||||||
name: deploy
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Deploy dashboard@master to DigitalOcean via SSH
|
|
||||||
uses: appleboy/ssh-action@v0.1.3
|
|
||||||
with:
|
|
||||||
HOST: ${{ secrets.DASHBOARD_HOST }}
|
|
||||||
USERNAME: ${{ secrets.DASHBOARD_USERNAME }}
|
|
||||||
KEY: ${{ secrets.DASHBOARD_SSHKEY }}
|
|
||||||
script: |
|
|
||||||
docker pull fluencelabs/dashboard:latest
|
|
||||||
docker rm -f dashboard
|
|
||||||
docker run -d --name dashboard -p443:443 -p80:80 -v caddy_data:/data fluencelabs/dashboard:latest
|
|
84
.github/workflows/deploy_prod.yml
vendored
Normal file
84
.github/workflows/deploy_prod.yml
vendored
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
name: build and deploy prod
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
### extract branch name
|
||||||
|
- name: Extract branch name
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
|
shell: bash
|
||||||
|
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
|
||||||
|
id: extract_branch
|
||||||
|
|
||||||
|
- name: Extract branch name
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Use Node.js 14
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 14
|
||||||
|
|
||||||
|
- run: npm install
|
||||||
|
- run: npm run prod
|
||||||
|
env:
|
||||||
|
CI: true
|
||||||
|
|
||||||
|
### Prepare docker & login to Dockerhub
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Cache Docker layers
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: /tmp/.buildx-cache
|
||||||
|
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-buildx-
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
### Set version
|
||||||
|
- run: echo "VERSION=0.1.${{github.run_number}}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- run: echo "CONTAINER_TAG=fluencelabs/dashboard:latest,fluencelabs/dashboard:${{ env.VERSION }}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
### Build and push docker image
|
||||||
|
- name: Build and push
|
||||||
|
id: docker_build
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./caddy.Dockerfile
|
||||||
|
push: true
|
||||||
|
tags: ${{ env.CONTAINER_TAG }}
|
||||||
|
- name: Image digest
|
||||||
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||||
|
|
||||||
|
### Deploy
|
||||||
|
- name: Deploy dashboard@master to DigitalOcean via SSH
|
||||||
|
uses: appleboy/ssh-action@v0.1.3
|
||||||
|
with:
|
||||||
|
HOST: ${{ secrets.DASHBOARD_HOST }}
|
||||||
|
USERNAME: ${{ secrets.DASHBOARD_USERNAME }}
|
||||||
|
KEY: ${{ secrets.DASHBOARD_SSHKEY }}
|
||||||
|
script: |
|
||||||
|
docker pull fluencelabs/dashboard:${{ env.VERSION }}
|
||||||
|
docker rm -f dashboard
|
||||||
|
docker run -d --name dashboard -p443:443 -p80:80 -v caddy_data:/data fluencelabs/dashboard:${{ env.VERSION }}
|
@ -1,5 +1,4 @@
|
|||||||
:8080, dash.fluence.dev {
|
:8080, dash.fluence.dev {
|
||||||
|
|
||||||
log {
|
log {
|
||||||
output stderr
|
output stderr
|
||||||
format console
|
format console
|
||||||
@ -8,6 +7,6 @@
|
|||||||
tls alexey@fluence.one
|
tls alexey@fluence.one
|
||||||
encode zstd gzip
|
encode zstd gzip
|
||||||
file_server
|
file_server
|
||||||
root * /bundle
|
root * /dist
|
||||||
try_files {path} /index.html
|
# try_files {path} /index.html
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM caddy
|
FROM caddy
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY ./dist /bundle
|
COPY ./dist /dist
|
||||||
COPY Caddyfile /Caddyfile
|
COPY Caddyfile /Caddyfile
|
||||||
|
|
||||||
#RUN printf '\n\
|
#RUN printf '\n\
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
FROM nginx
|
FROM nginx
|
||||||
|
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
COPY dist /usr/share/nginx/html
|
COPY dist /usr/share/nginx/html
|
||||||
|
9
nginx.conf
Normal file
9
nginx.conf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name frontend;
|
||||||
|
location / {
|
||||||
|
# This would be the directory where your React app's static files are stored at
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
try_files $uri /index.html;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "fluence-admin",
|
"name": "fluence-admin",
|
||||||
"version": "0.0.1",
|
"version": "0.1.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -8,7 +8,7 @@
|
|||||||
"start": "npm run dev",
|
"start": "npm run dev",
|
||||||
"dev": "webpack-dev-server --hot --colors --port 3000",
|
"dev": "webpack-dev-server --hot --colors --port 3000",
|
||||||
"build": "webpack",
|
"build": "webpack",
|
||||||
"prod": "webpack -p",
|
"prod": "webpack -p --mode production",
|
||||||
"analyse": "elm-analyse -s -p 3001 -o",
|
"analyse": "elm-analyse -s -p 3001 -o",
|
||||||
"compile-aqua": "aqua-cli --js -i ./aqua/ -o ./src/_aqua",
|
"compile-aqua": "aqua-cli --js -i ./aqua/ -o ./src/_aqua",
|
||||||
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
"watch-aqua": "chokidar \"**/*.aqua\" -c \"npm run compile-aqua\""
|
||||||
|
@ -69,7 +69,7 @@ function event(name, peer, peers, identify, services, modules, blueprints) {
|
|||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
setLogLevel('SILENT');
|
setLogLevel('DEBUG');
|
||||||
|
|
||||||
const pid = await generatePeerId();
|
const pid = await generatePeerId();
|
||||||
const flags = genFlags(pid.toB58String());
|
const flags = genFlags(pid.toB58String());
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const { merge } = require('webpack-merge');
|
const { merge } = require('webpack-merge');
|
||||||
|
|
||||||
const ClosurePlugin = require('closure-webpack-plugin');
|
const TerserPlugin = require('terser-webpack-plugin');
|
||||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||||
const HTMLWebpackPlugin = require('html-webpack-plugin');
|
const HTMLWebpackPlugin = require('html-webpack-plugin');
|
||||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
||||||
@ -137,19 +137,14 @@ if (MODE === 'development') {
|
|||||||
if (MODE === 'production') {
|
if (MODE === 'production') {
|
||||||
module.exports = merge(common, {
|
module.exports = merge(common, {
|
||||||
optimization: {
|
optimization: {
|
||||||
|
minimize: true,
|
||||||
minimizer: [
|
minimizer: [
|
||||||
new ClosurePlugin(
|
new TerserPlugin({
|
||||||
{ mode: 'STANDARD' },
|
parallel: true,
|
||||||
{
|
terserOptions: {
|
||||||
// compiler flags here
|
// https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions
|
||||||
//
|
|
||||||
// for debugging help, try these:
|
|
||||||
//
|
|
||||||
// formatting: 'PRETTY_PRINT',
|
|
||||||
// debug: true
|
|
||||||
// renaming: false
|
|
||||||
},
|
},
|
||||||
),
|
}),
|
||||||
new OptimizeCSSAssetsPlugin({}),
|
new OptimizeCSSAssetsPlugin({}),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user