https://github.com/automatik-engineering/super-duper-fishstick

ext

https://github.com/automatik-engineering/super-duper-fishstick

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

ext

Basic Info
  • Host: GitHub
  • Owner: automatik-engineering
  • Language: TypeScript
  • Default Branch: main
  • Size: 65.4 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Security

README.md

aka barki

This repository defines an example of a Docker extension. The files in this repository have been automatically generated as a result of running docker extension init.

This extension is composed of:

  • A frontend app in React that makes a request to the /hello endpoint and displays the payload in Docker Desktop.
  • A backend container that runs an API in Go. It exposes the /hello endpoint which returns a JSON payload.

You can build your Docker Extension using your fav tech stack:

  • Frontend: React, Angular, Vue, Svelte, etc. Basically, any frontend framework you can bundle in an index.html file with CSS, and JS assets.
  • Backend (optional): anything that can run in a container.
Looking for more templates? 1. [React + NodeJS](https://github.com/benja-M-1/node-backend-extension). 2. [React + .NET 6 WebAPI](https://github.com/felipecruz91/dotnet-api-docker-extension). Request one or submit yours [here](https://github.com/docker/extensions-sdk/issues).

Local development

You can use docker to build, install and push your extension. Also, we provide an opinionated Makefile that could be convenient for you. There isn't a strong preference of using one over the other, so just use the one you're most comfortable with.

To build the extension, use make build-extension or:

shell docker buildx build -t my/awesome-extension:latest . --load

To install the extension, use make install-extension or:

shell docker extension install my/awesome-extension:latest

If you want to automate this command, use the -f or --force flag to accept the warning message.

To preview the extension in Docker Desktop, open Docker Dashboard once the installation is complete. The left-hand menu displays a new tab with the name of your extension. You can also use docker extension ls to see that the extension has been installed successfully.

Frontend development

During the development of the frontend part, it's helpful to use hot reloading to test your changes without rebuilding your entire extension. To do this, you can configure Docker Desktop to load your UI from a development server. Assuming your app runs on the default port, start your UI app and then run:

shell cd ui npm install npm run dev

This starts a development server that listens on port 3000.

You can now tell Docker Desktop to use this as the frontend source. In another terminal run:

shell docker extension dev ui-source my/awesome-extension:latest http://localhost:3000

In order to open the Chrome Dev Tools for your extension when you click on the extension tab, run:

shell docker extension dev debug my/awesome-extension:latest

Each subsequent click on the extension tab will also open Chrome Dev Tools. To stop this behaviour, run:

shell docker extension dev reset my/awesome-extension:latest

Backend development (optional)

This example defines an API in Go that is deployed as a backend container when the extension is installed. This backend could be implemented in any language, as it runs inside a container. The extension frameworks provides connectivity from the extension UI to a socket that the backend has to connect to on the server side.

Note that an extension doesn't necessarily need a backend container, but in this example we include one for teaching purposes.

Whenever you make changes in the backend source code, you will need to compile them and re-deploy a new version of your backend container. Use the docker extension update command to remove and re-install the extension automatically:

shell docker extension update my/awesome-extension:latest

If you want to automate this command, use the -f or --force flag to accept the warning message.

Extension containers are hidden from the Docker Dashboard by default. You can change this in Settings > Extensions > Show Docker Extensions system containers.

Clean up

To remove the extension:

shell docker extension rm my/awesome-extension:latest

What's next?

  • To learn more about how to build your extension refer to the Extension SDK docs at https://docs.docker.com/desktop/extensions-sdk/.
  • To publish your extension in the Marketplace visit https://www.docker.com/products/extensions/submissions/.
  • To report issues and feedback visit https://github.com/docker/extensions-sdk/issues.
  • To look for other ideas of new extensions, or propose new ideas of extensions you would like to see, visit https://github.com/docker/extension-ideas/discussions.

Owner

  • Name: automatik-engineering
  • Login: automatik-engineering
  • Kind: organization

GitHub Events

Total
Last Year

Dependencies

.github/workflows/codeql.yml actions
  • actions/checkout v4 composite
  • github/codeql-action/analyze v3 composite
  • github/codeql-action/init v3 composite
.github/workflows/deno.yml actions
  • actions/checkout v4 composite
  • denoland/setup-deno 61fe2df320078202e33d7d5ad347e7dcfa0e8f31 composite
.github/workflows/docker-publish.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action 0565240e2d4ab88bba5387d719585280857ece09 composite
  • docker/login-action 343f7c4344506bcbf9b4de18042ae17996df046d composite
  • docker/metadata-action 96383f45573cb7f253c731d3b3ab81c87ef81934 composite
  • docker/setup-buildx-action f95db51fddba0c2d1ec667646a06c2ce06100226 composite
  • sigstore/cosign-installer 59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 composite
.github/workflows/go-ossf-slsa3-publish.yml actions
Dockerfile docker
  • alpine latest build
  • golang 1.21-alpine build
  • node 21.6-alpine3.18 build
backend/go.mod go
  • github.com/golang-jwt/jwt v3.2.2+incompatible
  • github.com/labstack/echo/v4 v4.12.0
  • github.com/labstack/gommon v0.4.2
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.20
  • github.com/sirupsen/logrus v1.9.3
  • github.com/valyala/bytebufferpool v1.0.0
  • github.com/valyala/fasttemplate v1.2.2
  • golang.org/x/crypto v0.22.0
  • golang.org/x/net v0.24.0
  • golang.org/x/sys v0.19.0
  • golang.org/x/text v0.14.0
  • golang.org/x/time v0.5.0
backend/go.sum go
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/golang-jwt/jwt v3.2.2+incompatible
  • github.com/labstack/echo/v4 v4.12.0
  • github.com/labstack/gommon v0.4.2
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.16
  • github.com/mattn/go-isatty v0.0.20
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/sirupsen/logrus v1.9.3
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/testify v1.7.0
  • github.com/stretchr/testify v1.8.4
  • github.com/valyala/bytebufferpool v1.0.0
  • github.com/valyala/fasttemplate v1.2.2
  • golang.org/x/crypto v0.22.0
  • golang.org/x/net v0.24.0
  • golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
  • golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
  • golang.org/x/sys v0.6.0
  • golang.org/x/sys v0.19.0
  • golang.org/x/text v0.14.0
  • golang.org/x/time v0.5.0
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
  • gopkg.in/yaml.v3 v3.0.1
package.json npm
ui/package-lock.json npm
  • 372 dependencies
ui/package.json npm
  • @docker/extension-api-client-types 0.3.4 development
  • @types/jest ^29.1.2 development
  • @types/node ^18.7.18 development
  • @types/react ^18.0.17 development
  • @types/react-dom ^18.0.6 development
  • @vitejs/plugin-react ^2.1.0 development
  • jest ^29.1.2 development
  • typescript ^4.8.3 development
  • vite ^3.1.0 development
  • @docker/docker-mui-theme <0.1.0
  • @docker/extension-api-client 0.3.4
  • @emotion/react 11.10.4
  • @emotion/styled 11.10.4
  • @mui/material 5.10.8
  • react ^18.2.0
  • react-dom ^18.2.0