diff --git a/README.md b/README.md index 4c791027..c058adbf 100644 --- a/README.md +++ b/README.md @@ -360,7 +360,7 @@ This repository offers two types of docker image; `stable` and `development`. Yo | Build | Tags | | ------------------------- | ----------------------------------------------------------------------------- | -| `Stable` | `πŸ”– tvapp2:latest`
`πŸ”– tvapp2:1.2.0`
`πŸ”– tvapp2:1.2`
`πŸ”– tvapp2:1` | +| `Stable` | `πŸ”– tvapp2:latest`
`πŸ”– tvapp2:1.5.0`
`πŸ”– tvapp2:1.5`
`πŸ”– tvapp2:1` | | `Development` | `πŸ”– tvapp2:development` |
@@ -395,7 +395,11 @@ If you cloned the files from the official repository [πŸ”† gitea:binaryninja/tva > [!CAUTION] > Be careful using the command to change **ALL** files. You should **NOT** change the files in your `πŸ“ .git` folder, otherwise you will corrupt your git indexes. > -> If you accidentally run `πŸ—” dos2unix` on your `πŸ“ .git` folder, do NOT push anything to git. Pull a new copy from the repo. +> If you accidentally run `πŸ—” dos2unix` on your `πŸ“ .git` folder, do NOT push anything to git. Pull a new copy from the repo or reset your local files back to the remote: +> +> ```shell +> git reset --hard origin/main +> ```
@@ -432,7 +436,8 @@ sudo chmod +x ./root/etc/s6-overlay/s6-rc.d/init-adduser/run \ ./root/etc/s6-overlay/s6-rc.d/init-permissions/run \ ./root/etc/s6-overlay/s6-rc.d/init-samples/run \ ./root/etc/s6-overlay/s6-rc.d/init-version-checks/run \ - ./root/etc/s6-overlay/s6-rc.d/svc-cron/run + ./root/etc/s6-overlay/s6-rc.d/svc-cron/run \ + ./root/etc/services.d/tvapp2/run ```
@@ -443,7 +448,7 @@ After completing the steps above; we will now build the [πŸ”† gitea:binaryninja/
-Before you build the TVApp2 image; open the `πŸ“„ Dockerfile` and ensure you are pulling the correct Alpine base image. This instruction is located near the top of the `πŸ“„ Dockerfile`: +Open the `πŸ“„ Dockerfile` and ensure you are pulling the correct Alpine base image. This code is located near the top of the `πŸ“„ Dockerfile`: ```dockerfile ARG ARCH=amd64 @@ -539,7 +544,7 @@ Waiting for authentication in the browser…
-Once you are finished in your browser, you can return to your Linux terminal, and it should bring you back to where you can type a command. You can now verify again if you are signed in: +Once finished in your browser, return to your Linux terminal, and it should bring you back to where you can type a command. You can now verify again if you are signed in: ```shell docker info | grep Username @@ -567,11 +572,11 @@ Creates the TVApp2 `amd64` docker image: # Build tvapp2 amd64 docker buildx build \ --build-arg ARCH=amd64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2.0 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2 \ - --tag ghcr.io/thebinaryninja/tvapp2:2 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5.0 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5 \ + --tag ghcr.io/thebinaryninja/tvapp2:1 \ --tag ghcr.io/thebinaryninja/tvapp2:latest \ --attest type=provenance,disabled=true \ --attest type=sbom,disabled=true \ @@ -595,10 +600,10 @@ Creates the TVApp2 `arm64` docker image: # Build tvapp2 arm64 docker buildx build \ --build-arg ARCH=arm64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2.0 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5.0 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5 \ --tag ghcr.io/thebinaryninja/tvapp2:1 \ --tag ghcr.io/thebinaryninja/tvapp2:latest \ --attest type=provenance,disabled=true \ @@ -727,8 +732,8 @@ docker run --privileged --rm tonistiigi/binfmt --install all Once the emulator is installed; we will now build two images. When building these two images; we will ensure the `--tag` value is different for each one, by adding the architecture to the end. This ensures we don't overwrite one image with the newer one. We need to have two seperate docker images with two different tags. -- `--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64` -- `--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64` +- `--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64` +- `--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64`
@@ -739,14 +744,14 @@ Once the emulator is installed; we will now build two images. When building thes > > | Registry | Tag | > | --- | --- | -> | Dockerhub | `--tag thebinaryninja/tvapp2:1.2.0-amd64`
`--tag thebinaryninja/tvapp2:1.2.0-arm64` | -> | Github (GHCR) | `--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64`
`--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64` | -> | Registry v2 | `--tag registry.domain.lan/thebinaryninja/tvapp2:1.2.0-amd64`
`--tag registry.domain.lan/thebinaryninja/tvapp2:1.2.0-arm64` | -> | Gitea | `--tag git.binaryninja.net/binaryninja/tvapp2:1.2.0-amd64`
`--tag git.binaryninja.net/binaryninja/tvapp2:1.2.0-arm64` | +> | Dockerhub | `--tag thebinaryninja/tvapp2:1.5.0-amd64`
`--tag thebinaryninja/tvapp2:1.5.0-arm64` | +> | Github (GHCR) | `--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64`
`--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64` | +> | Registry v2 | `--tag registry.domain.lan/thebinaryninja/tvapp2:1.5.0-amd64`
`--tag registry.domain.lan/thebinaryninja/tvapp2:1.5.0-arm64` | +> | Gitea | `--tag git.binaryninja.net/binaryninja/tvapp2:1.5.0-amd64`
`--tag git.binaryninja.net/binaryninja/tvapp2:1.5.0-arm64` |
-After we built these two images and push them to a registry online, we will merge them into a single docker image which contains both arcitectures. +After we build these two images and push them to a registry online; merge them into a single docker image which contains both arcitectures.
@@ -763,9 +768,9 @@ Creates the TVApp2 **Stable** release `amd64` docker image: # Build Tvapp2 amd64 - (stable release) docker buildx build \ --build-arg ARCH=amd64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64 \ --attest type=provenance,disabled=true \ --attest type=sbom,disabled=true \ --file Dockerfile \ @@ -789,9 +794,9 @@ Creates the TVApp2 **Stable** release `arm64` docker image: # Build Tvapp2 arm64 - (stable release) docker buildx build \ --build-arg ARCH=arm64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64 \ --attest type=provenance,disabled=true \ --attest type=sbom,disabled=true \ --file Dockerfile \ @@ -815,8 +820,8 @@ Creates the TVApp2 **Development** release `amd64` docker image: # Build Tvapp2 amd64 - (development release) docker buildx build \ --build-arg ARCH=amd64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ --tag ghcr.io/thebinaryninja/tvapp2:development-amd64 \ --attest type=provenance,disabled=true \ --attest type=sbom,disabled=true \ @@ -841,8 +846,8 @@ Creates the TVApp2 **Development** release `arm64` docker image: # Build Tvapp2 arm64 - (development release) docker buildx build \ --build-arg ARCH=arm64 \ - --build-arg VERSION=1.2.0 \ - --build-arg BUILDDATE=20250407 \ + --build-arg VERSION=1.5.0 \ + --build-arg BUILDDATE=20260812 \ --tag ghcr.io/thebinaryninja/tvapp2:development-arm64 \ --attest type=provenance,disabled=true \ --attest type=sbom,disabled=true \ @@ -861,14 +866,14 @@ docker buildx build \ After completing the `docker buildx` commands above; you should now have a few new images. Each image should have its own separate docker tags which do not conflict. If you decided to not build the **development** releases below; that is fine. -- `--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64` -- `--tag ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64` +- `--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64` +- `--tag ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64` - `--tag ghcr.io/thebinaryninja/tvapp2:development-amd64` - `--tag ghcr.io/thebinaryninja/tvapp2:development-arm64`
-Next, we need to take these two images, and merge them into one so that both architectures are available without having to push separate images. You need to obtain the SHA256 hash digest for the `amd64` and `arm64` images. You can go to the registry where you uploaded the images and then copy them. Or you can run the following commands: +Next, we need to take these two images, and merge them into one so that both architectures are available without having to push separate images. You need to obtain the SHA256 hash digest for the `amd64` and `arm64` images. You can go to the registry where you uploaded the images and then copy them. Or you can run the commands specified below depending on which release type you want:

@@ -888,19 +893,20 @@ You can also get the hash digests by running the commands:
```shell -$ docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64 +$ docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64 -Name: ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64 +Name: ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64 MediaType: application/vnd.docker.distribution.manifest.v2+json Digest: sha256:0abe1b1c119959b3b1ccc23c56a7ee2c4c908c6aaef290d4ab2993859d807a3b -$ docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64 +$ docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64 -Name: ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64 +Name: ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64 MediaType: application/vnd.docker.distribution.manifest.v2+json Digest: sha256:e68b9de8669eac64d4e4d2a8343c56705e05e9a907cf0b542343f9b536d9c473 ``` +

**Development Release** @@ -942,14 +948,14 @@ Digest: sha256:c719ccb034946e3f0625003f25026d001768794e38a1ba8aafc9146291d548 > ```shell > $ docker images --all --no-trunc | grep thebinaryninja > -> ghcr.io/thebinaryninja/tvapp2 1.2.0-arm64 sha256:48520ca15fed6483d2d5b79993126c311f833002345b0e12b8eceb5bf9def966 42 minutes ago 46MB +> ghcr.io/thebinaryninja/tvapp2 1.5.0-arm64 sha256:48520ca15fed6483d2d5b79993126c311f833002345b0e12b8eceb5bf9def966 42 minutes ago 46MB > -> ghcr.io/thebinaryninja/tvapp2 1.2.0-amd64 sha256:54a9b7d390199532d5667fae67120d77e2f459bd6108b27ce94e0cfec8f3c41f 43 minutes ago 45MB +> ghcr.io/thebinaryninja/tvapp2 1.5.0-amd64 sha256:54a9b7d390199532d5667fae67120d77e2f459bd6108b27ce94e0cfec8f3c41f 43 minutes ago 45MB > ``` > > To get the correct sha256 digest, use: -> - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64` -> - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64` +> - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64` +> - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64` > - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:development-amd64` > - `docker buildx imagetools inspect ghcr.io/thebinaryninja/tvapp2:development-arm64` > @@ -969,8 +975,8 @@ For the **stable** releases, use: # # docker buildx imagetools create \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2.0 \ - --tag ghcr.io/thebinaryninja/tvapp2:1.2 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5.0 \ + --tag ghcr.io/thebinaryninja/tvapp2:1.5 \ --tag ghcr.io/thebinaryninja/tvapp2:1 \ --tag ghcr.io/thebinaryninja/tvapp2:latest \ sha256:0abe1b1c119959b3b1ccc23c56a7ee2c4c908c6aaef290d4ab2993859d807a3b \ @@ -978,9 +984,9 @@ docker buildx imagetools create \ [+] Building 0.2s (4/4) FINISHED => [internal] pushing ghcr.io/thebinaryninja/tvapp2:latest 0.2s - => [internal] pushing ghcr.io/thebinaryninja/tvapp2:1.2 0.2s + => [internal] pushing ghcr.io/thebinaryninja/tvapp2:1.5 0.2s => [internal] pushing ghcr.io/thebinaryninja/tvapp2:1 0.2s - => [internal] pushing ghcr.io/thebinaryninja/tvapp2:1.2.0 0.2s + => [internal] pushing ghcr.io/thebinaryninja/tvapp2:1.5.0 0.2s ```
@@ -1026,8 +1032,8 @@ In this example, we take the existing two files we created earlier, and merge th ```shell # Example 1 (using tag) docker manifest create ghcr.io/thebinaryninja/tvapp2:latest \ - --amend ghcr.io/thebinaryninja/tvapp2:1.2.0-amd64 \ - --amend ghcr.io/thebinaryninja/tvapp2:1.2.0-arm64 + --amend ghcr.io/thebinaryninja/tvapp2:1.5.0-amd64 \ + --amend ghcr.io/thebinaryninja/tvapp2:1.5.0-arm64 # Example 2 (using sha256 hash) docker manifest create ghcr.io/thebinaryninja/tvapp2:latest \ @@ -1068,7 +1074,7 @@ To build the project, `πŸ—” cd` into the project folder and run the build comman ```shell cd /home/docker/tvapp2/ -npm run docker:build:amd64 --VERSION=1.2.0 --BUILDDATE=20250407 +npm run docker:build:amd64 --VERSION=1.5.0 --BUILDDATE=20260812 ```
@@ -1093,7 +1099,7 @@ The run command above has several variables you must specify: | Variable | Description | | --- | --- | | `--VERSION=1.X.X` | The version to assign to the docker image | -| `--BUILDDATE=20250407` | The date to assign to the docker image.
Date format: `YYYYMMDD` | +| `--BUILDDATE=20260812` | The date to assign to the docker image.
Date format: `YYYYMMDD` | | `--ARCH=amd64` | Architecture for image
Options: `amd64`, `arm64` |
@@ -1862,6 +1868,8 @@ cd /path/to/tvapp2 find ./ -type f | grep -Ev '.git|*.jpg|*.jpeg|*.png' | sudo xargs dos2unix -- ``` +
+ > [!WARNING] > Do not run `πŸ—” dos2unix` on your `πŸ“ .git` folder or you will corrupt your git indexes and will be unable to push commits. > @@ -1888,7 +1896,6 @@ If you receive any of the above errors; this means that you have not set your `r find ./ -name 'run' -exec sudo chmod +x {} \; ``` -

After you have set these permissions, re-build your docker image using `docker build` or `docker buildx`. Then spin the container up.