Skip to content

Commit

Permalink
node: add 20 (latest)
Browse files Browse the repository at this point in the history
  • Loading branch information
fredericosilva committed May 26, 2023
1 parent 432a060 commit 0f39833
Show file tree
Hide file tree
Showing 7 changed files with 123 additions and 4 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ Common software in shell image: ```curl less git less rsync wget nano mc vim mar
| ```h1cr.io/website/filebrowser``` | ```latest``` | |
| ```h1cr.io/website/nginx-console``` | ```latest``` | |
| ```h1cr.io/website/nginx-static``` | ```latest``` | |
| ```h1cr.io/website/node``` | ```16```, ```18``` | ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) |
| ```h1cr.io/website/node-console``` | ```16```, ```18``` | ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) |
| ```h1cr.io/website/node``` | ```16```, ```18```, ```20``` | ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) |
| ```h1cr.io/website/node-console``` | ```16```, ```18```, ```20``` | ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) ![Package: nodejs](https://repology.org/badge/latest-versions/nodejs.svg?header=nodejs) |
| ```h1cr.io/website/php-apache``` | ```7.2```, ```7.3```, ```7.4```, ```8.0``` | ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) |
| ```h1cr.io/website/php-apache-shell``` | ```7.2```, ```7.3```, ```7.4```, ```8.0``` | ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) |
| ```h1cr.io/website/php-console``` | ```7.2```, ```7.3```, ```7.4```, ```8.0``` | ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) ![Package: php](https://repology.org/badge/latest-versions/php.svg?header=php) |
Expand Down
3 changes: 3 additions & 0 deletions node-console/20/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM h1cr.io/website/node:20
COPY --from=h1cr.io/ws-server /opt/ws-server /opt/ws-server
CMD ["/opt/ws-server/server"]
1 change: 0 additions & 1 deletion node/16/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ W celu użycia w ramach usługi *Strona* podczas utworzenia strony należy wskaz

```h1cr.io/website/node:16```

Środowisko dostępne także z wykorzystaniem identyfikatora ```h1cr.io/website/node:latest``` w celu uzyskania stale najnowszej wersji NodeJS. W przypadku wydania nowej wersji to oznaczenie to będzie wskazywać na nową wersje.

Kod aplikacji należy umieścić w ścieżce ```app```, a punkt startowy w ```app/index.js```

Expand Down
1 change: 0 additions & 1 deletion node/18/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ W celu użycia w ramach usługi *Strona* podczas utworzenia strony należy wskaz

```h1cr.io/website/node:18```

Środowisko dostępne także z wykorzystaniem identyfikatora ```h1cr.io/website/node:latest``` w celu uzyskania stale najnowszej wersji NodeJS. W przypadku wydania nowej wersji to oznaczenie to będzie wskazywać na nową wersje.

Kod aplikacji należy umieścić w ścieżce ```app```, a punkt startowy w ```app/index.js```

Expand Down
28 changes: 28 additions & 0 deletions node/20/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM node:20
LABEL maintainer="HyperOne"
LABEL rbx.shell_cmd="/bin/bash"
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates git less rsync curl zip unzip wget nano mc vim mariadb-client openssh-sftp-server postgresql-client subversion locales \
&& VERSION_CODENAME=$(sed -E -n 's/VERSION=.*\((.+?)\).*$/\1/gp' /etc/os-release) \
&& fetchDeps="gnupg" \
&& apt-get update \
&& apt-get install -y --no-install-recommends ${fetchDeps} \
&& curl -fsSL "http://packages.hyperone.cloud/gpg.public.txt" | apt-key add - \
&& echo "deb [arch=amd64] http://packages.hyperone.cloud/linux/debian/ $VERSION_CODENAME stable" > /etc/apt/sources.list.d/hyperone.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends h1-cli \
&& apt-get remove -y ${fetchDeps} \
&& rm -rf /var/lib/apt/lists/*
RUN ln -s /usr/lib/openssh/sftp-server /usr/bin/sftp-server
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
&& dpkg-reconfigure --frontend=noninteractive locales \
&& update-locale LANG=en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
RUN adduser --uid 23456 --disabled-password --gecos "" --home /data run-user && chown run-user:run-user -R /data
USER run-user
WORKDIR /data
ENV NODE_VERSION 20
ENV PORT 8080
CMD ["node", "app"]
84 changes: 84 additions & 0 deletions node/20/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Node 20

## Kluczowe funkcjonalności

* Dostęp do NodeJS w wersji 20
* Kompatybilność z usługą *Baza danych* w wariancie PostgreSQL i MySQL
* Obsługa HTTP i WebSocket

## Struktura katalogów

Wykorzystywana jest następująca struktura katalogów:

* ```/data/.zfs``` - dostęp (wyłącznie do odczytu) utworzonych migawek
* ```/data/public``` - katalog zawierający aplikacje
* ```/data/app/index.js``` - plik startowy aplikacji NodeJS

## Użycie

Środowisko wykonawcze może zostać wykorzystane w ramach usługi *Strona*.

W celu użycia w ramach usługi *Strona* podczas utworzenia strony należy wskazać środowisko wykonawcze z wykorzystaniem identyfikatora:

```h1cr.io/website/node:20```

Środowisko dostępne także z wykorzystaniem identyfikatora ```h1cr.io/website/node:latest``` w celu uzyskania stale najnowszej wersji NodeJS. W przypadku wydania nowej wersji to oznaczenie to będzie wskazywać na nową wersje.

Kod aplikacji należy umieścić w ścieżce ```app```, a punkt startowy w ```app/index.js```

## Oprogramowanie

Środowisko udostępnia następujące oprogramowanie:

* NodeJS 20

### Interpreter NodeJS

Interpreter NodeJS jest odpowiedzialny za obsługę przychodzącego żądania i udzielenia w celu udzielenia odpowiedzi dynamicznej odpowiedzi wygenerowanej z pomocą język 20.

Środowisko udostępnia najnowszą stabilną wersji NodeJS 20. W środowisku mogą zostać wprowadzone nowe drobne poprawki, ale nie ulega zmianie główna wersja.

Na przykład środowisko może zawierać NodeJS 20.1.1, a później zostać zaktualizowane do NodeJS 20.2.15, ale nie będzie automatycznie aktualizowana do wyższego wydania głównego.

#### Nagłówki żądąnia

Żądania przekazane do aplikacji zawierają następujące dodatkowe nagłówki:

* ```X-Forwarded-For``` - adres IP wykorzystujący usługę *Strona* tj. adres IP użytkownika aplikacji
* ```X-Forwarded-Host``` - adres domenowy wykorzystany do połączenia z usługą *Strona*
* ```X-Forwarded-Port``` – port wykorzystany do połączenia z usługą *Strona*
* ```X-Forwarded-Proto``` - protokół wykorzystany do połączenia z usługą *Strona*

#### Dzienniki zdarzeń

Informacje na temat pracy interpretera NodeJS są domyślnie wyświetlane i rejestrowane do ogólnego dziennika usługi *Strona* .

## Zmienne środowiskowe

Następujące zmienne środowiskowe są ustawione w środowisku:

| Zmienna środowiskowa | Opis |
| -------------------- | ------------------------------------- |
| ```NODE_VERSION``` | Dostępna wersja interpretera NodeJS |
| ```PORT``` | Wymagany port nasłuchiwania aplikacji |

## Powłoka

W interaktywnej konsoli jest dostępne m. in. następujące oprogramowanie:

* composer
* curl
* h1-cli
* mariadb-client
* mc
* nano
* postgresql-client
* rsync
* less
* git
* subversion
* unzip
* vim
* wget
* wp-cli
* zip
6 changes: 6 additions & 0 deletions node/tags.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ module.exports = {
args: {
NODE_VERSION: '18'
},
packages: [ 'nodejs' ]
},
20: {
args: {
NODE_VERSION: '20'
},
latest: true,
packages: [ 'nodejs' ]
}
Expand Down

0 comments on commit 0f39833

Please sign in to comment.