Skip to content

Commit

Permalink
Test environment deployment (#391)
Browse files Browse the repository at this point in the history
* Test environment deployment

* use node 20

* add guide to run Dockerized version on macOS

---------

Co-authored-by: Martin Mihálik <[email protected]>
Co-authored-by: rtrembecky <[email protected]>
  • Loading branch information
3 people authored Aug 20, 2024
1 parent c31da00 commit fab06e5
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: deploy
name: Deploy Test Environment

on: workflow_dispatch

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: wshihadeh/docker-deployment-action@v2
with:
remote_docker_host: [email protected]
ssh_private_key: ${{ secrets.WEBSTROM_DEPLOY_SSH_PRIVATE_KEY }}
ssh_public_key: ${{ secrets.WEBSTROM_DEPLOY_SSH_PUBLIC_KEY }}
stack_file_name: compose.yaml
stack_file_name: deployment/compose-test.yaml
args: up --build --force-recreate --detach
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out branch code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node.js with Yarn cache
uses: actions/setup-node@v3
with:
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"files.associations": {
"compose-*.yaml": "dockercompose"
},
"git.branchProtection": [
"master"
],
Expand Down
8 changes: 0 additions & 8 deletions compose.yaml

This file was deleted.

6 changes: 4 additions & 2 deletions Dockerfile → deployment/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
FROM node:18
FROM node:20

ARG NEXT_PUBLIC_BE_PORT

WORKDIR /app

COPY . ./
COPY . /app

RUN yarn && yarn build

Expand Down
19 changes: 19 additions & 0 deletions deployment/compose-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: "3"

services:
webstrom-frontend:
build:
dockerfile: deployment/Dockerfile
context: ..
args:
- NEXT_PUBLIC_BE_PORT=8920

image: webstrom-test-frontend

environment:
- PORT=8922
- NEXT_PUBLIC_BE_PORT=8920

network_mode: host

restart: always
13 changes: 13 additions & 0 deletions deployment/local-mac/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM node:20

ARG NEXT_PUBLIC_BE_PORT
ARG NEXT_PUBLIC_BE_HOSTNAME

WORKDIR /app

COPY . /app

RUN yarn && yarn build

ENTRYPOINT [ "yarn", "start", "-H", "0.0.0.0" ]

30 changes: 30 additions & 0 deletions deployment/local-mac/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Ako pustit Docker na macOS

## Co pustam

- `docker-compose -f deployment/local-mac/compose.yaml up --build --force-recreate`
- da sa prihodit aj `--detach` ked chceme pustit v backgrounde (bez neho vidime server logy priamo v terminali)

Treba mat samozrejme Docker a docker-compose atd.

## Urobene zmeny oproti compose-test

Ked som chcel pustit Docker na macu, musel som urobil nasledujuce zmeny (poradilo ChatGPT):

### `compose.yml`

- zmenil som aj meno suboru (lebo nebuildime "test" environment a.k.a test.strom.sk)
- vymena `network_mode: host` za `ports: - '3000:3000'` - network_mode vraj na macu nefunguje
- pridanie `- NEXT_PUBLIC_BE_HOSTNAME=host.docker.internal` - aby sa to vedelo pripojit na lokalny BE - Docker pouziva takyto hostname pre host machine localhost
- zmenil som porty na 3000/8000 ako standardne pouzivame pre development
- `dockerfile` a `context` cesty podla file struktury novych suborov

### `Dockerfile`

- host v `ENTRYPOINT`e na `"0.0.0.0"`
- od ChatGPT: You're trying to start the application with `yarn start -H localhost`. This command might not be correctly binding to all network interfaces. Usually, you'd use `-H 0.0.0.0` to ensure the app listens on all interfaces, including those available within a Docker container. (a naozaj to pomohlo, inak mi stranku browser nenacital)
- pridany `ARG NEXT_PUBLIC_BE_HOSTNAME` pre nacitanie env varu z compose

### BE `settings.py`

- `ALLOWED_HOSTS = ['host.docker.internal']` - BE krical, ze treba :shrug:
20 changes: 20 additions & 0 deletions deployment/local-mac/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
services:
webstrom-frontend:
build:
dockerfile: deployment/local-mac/Dockerfile
context: ../..
args:
- NEXT_PUBLIC_BE_PORT=8000
- NEXT_PUBLIC_BE_HOSTNAME=host.docker.internal

image: webstrom-test-frontend

environment:
- PORT=3000
- NEXT_PUBLIC_BE_PORT=8000
- NEXT_PUBLIC_BE_HOSTNAME=host.docker.internal

ports:
- '3000:3000'

restart: always

0 comments on commit fab06e5

Please sign in to comment.