commitpull/1/head98bff364a9
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Tue May 30 22:58:12 2023 -0500 add deployment docs commitcdcae78359
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Sat May 27 15:24:34 2023 -0500 origin env commit49c01169d3
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Sat May 27 15:07:49 2023 -0500 fix build for web-client commitb4fd08f40f
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 22:33:32 2023 -0500 update cat endpoint commit3edb03e297
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 22:31:01 2023 -0500 add more configmaps commitd011b29427
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 22:19:10 2023 -0500 update configmaps commit1049be1bcc
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 21:49:23 2023 -0500 rearrange commitb82c24b339
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 21:27:17 2023 -0500 tweaks commit2aa0960b00
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 21:20:49 2023 -0500 encrypt just the pull secret and merge it in commit54261d6089
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 21:13:08 2023 -0500 try to get kustomization to be happy commitf09a42837b
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 21:09:41 2023 -0500 encrypt kustomization.yaml commita5dd2c34b0
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 20:51:53 2023 -0500 add sops and beta specific decryption key commit6a88c36646
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 20:18:14 2023 -0500 attempt to use var replacement commit756330e79c
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 19:53:04 2023 -0500 some lifecycle fixes for app and access control stuff, to get data flowing to the client again commit2e0e78ae28
Merge:ebfccca
e945fc2
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 19:22:13 2023 -0500 Merge remote-tracking branch 'origin/feat/mvp' into feat/mvp-deploy-beta * origin/feat/mvp: pagination and linking improvements use 1 table for catalog data + search re arrange some things commitebfcccabfe
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 19:08:27 2023 -0500 add prod builds and migrate env to a namespaced configuration in k8s commite945fc2f79
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 01:41:44 2023 -0500 pagination and linking improvements commit7970ff99b0
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Fri May 26 01:41:17 2023 -0500 use 1 table for catalog data + search commit5221c50814
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Thu May 25 19:48:00 2023 -0500 re arrange some things commit000ff9a711
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Wed May 24 22:57:23 2023 -0500 cronjob that invokes runner commitc4cebcea6d
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Wed May 24 18:46:12 2023 -0500 refactor grpc dial into kernel, trying to figure out runner import slowness commitd09e5aaf53
Author: Adam Veldhousen <adamveld12@gmail.com> Date: Wed May 24 01:44:04 2023 -0500 uses k8s to run frontend, has ingress
parent
e945fc2f79
commit
7abc8666b9
@ -0,0 +1,6 @@
|
||||
creation_rules:
|
||||
- path_regex: env/.*/master\.json$
|
||||
pgp: 4FA79E5B6598505C8DFA30A7A466CEE1415C0B9C
|
||||
- path_regex: env/base/.*\.yaml$
|
||||
encrypted_regex: ^(data|stringData)$
|
||||
age: age1d5vst0g82v6xml29ydsrxefmf3vclgm6dj3npw6mefa7yu9xueaqztjqlg
|
@ -0,0 +1,88 @@
|
||||
# Deployment
|
||||
|
||||
Services deployed (using kustomize):
|
||||
|
||||
- [catalog](./src/catalog)
|
||||
- [runner](./src/runner)
|
||||
- [proxy-admin](./src/proxy-admin)
|
||||
- [proxy-client](./src/proxy-client)
|
||||
- [web-client](./src/web-client)
|
||||
|
||||
|
||||
Platform components deployed (using helm):
|
||||
|
||||
- [Traefik]()
|
||||
- [Postgresql]()
|
||||
|
||||
|
||||
## [Beta](https://beta.barretthousen.com)
|
||||
|
||||
The [Beta](https://beta.barretthousen.com) environment lives in my [homelab repo](https://git.vdhsn.com/adam/SunnyHomeLab),
|
||||
and is auto deployed using Flux w/ kustomize.
|
||||
|
||||
See [./env/beta](./env/beta/kustomization.yaml) for how it's set up.
|
||||
|
||||
- There are only 3 environments: `local`, `beta`, `prod`
|
||||
- `local`: optimize for iteration speed, observability, mutability. Ephemeral data. Should be quick to create and destroy.
|
||||
- `beta`: optimize for likeness with prod, observability, and durable data.
|
||||
- `prod`: optimize for up time, automated change control, observability, data durability.
|
||||
- Each environment should pull from the image tag that matches it's name (ie catalog service running in `beta` env will use `git.vdhsn.com/barretthousen/service-catalog:beta` docker image)
|
||||
- All environments should have resources suffixed with their name (ie `deployment/catalog-beta` in `beta` env)
|
||||
- All environments must use kustomize, and have the same resources - configuration of those resources can vary as needed
|
||||
|
||||
### Initial environment setup
|
||||
|
||||
Deploy the following with Helm (assuming we're setting up a new `beta` env with the following commands):
|
||||
1. Traefik:
|
||||
```sh
|
||||
helm repo add traefik https://traefik.github.io/charts;
|
||||
|
||||
helm install --upgrade ingress traefik/traefik -n 'barretthousen-beta'\
|
||||
--set=logs.access.enabled=true
|
||||
```
|
||||
|
||||
2. Postgresql:
|
||||
```sh
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami;
|
||||
|
||||
helm install --upgrade bh-db bitnami/postgresql -n 'barretthousen-beta' \
|
||||
--set='fullnameOverride=bh-db' \
|
||||
--set='auth.enablePostgresuser=true' \
|
||||
--set='auth.postgresPassword=bh-admin' \
|
||||
--set='auth.database=bh'
|
||||
```
|
||||
|
||||
### Deployment steps
|
||||
|
||||
1. Build and publish prod images
|
||||
```sh
|
||||
make build-backend-image SERVICE=catalog env=beta
|
||||
make build-backend-image SERVICE=runner env=beta
|
||||
make build-backend-image SERVICE=proxy-admin env=beta
|
||||
make build-backend-image SERVICE=proxy-client env=beta
|
||||
|
||||
make build-client-image SERVICE=web-client env=beta
|
||||
```
|
||||
|
||||
2. Rolling restart deployments in the beta env
|
||||
```sh
|
||||
kubectl rollout restart -n barretthousen-beta deployment runner-beta
|
||||
kubectl rollout status -n barretthousen-beta deployment runner-beta -w
|
||||
|
||||
kubectl rollout restart -n barretthousen-beta deployment catalog-beta
|
||||
kubectl rollout status -n barretthousen-beta deployment catalog-beta -w
|
||||
|
||||
kubectl rollout restart -n barretthousen-beta deployment proxy-admin-beta
|
||||
kubectl rollout status -n barretthousen-beta deployment proxy-admin-beta -w
|
||||
|
||||
kubectl rollout restart -n barretthousen-beta deployment proxy-client-beta
|
||||
kubectl rollout status -n barretthousen-beta deployment proxy-client-beta -w
|
||||
|
||||
kubectl rollout restart -n barretthousen-beta deployment web-client-beta
|
||||
kubectl rollout status -n barretthousen-beta deployment web-client-beta -w
|
||||
```
|
||||
|
||||
|
||||
## Prod
|
||||
|
||||
TBD
|
@ -0,0 +1,27 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: bh-registry
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
stringData:
|
||||
.dockerconfigjson: ENC[AES256_GCM,data:bfqlh7Vy3HDYFtgv56xO+8lXOLO9bQWRC16N8hAzv6xJaIN6CmXDwFzoLoGWPrP9s/o446tuOEJEylf5z/ITnLtdGJgMsN13Xk7OiF9B2unV8yOOrzt6U6R2s5cFpbSL3tAHQmDKHxRrzbvyV2J3magen7oHQWbkwkOQq7FqV/k7wFly+bei1u+YLJ9hq798Xa5HG9j4LsVWi5izKt1BBss2xFlo3yzEFqNmQ+AzcUN1uK1xwStplK4IKC36rewONDS+yyqj830LLShb,iv:qDwYxBqK+ZamBcWEuF+UEfW8gLFROagaBqVAc1tCjUI=,tag:OYhChcvisxP0r3kQ4hq4SA==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1d5vst0g82v6xml29ydsrxefmf3vclgm6dj3npw6mefa7yu9xueaqztjqlg
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaRG1ERkdkTXMvUllCSHdS
|
||||
TXVBVWNMd0hYeXMvTXh6OFVTYXV0MkVoOEJ3Ck9XakJTbHMyTWpvazFzYUtNcmtx
|
||||
NTVoVnUwWkpKYjg4MWs1dmxpT3JGRFUKLS0tIHdHRk8yL1lCRk9DM0haYjN4Z1Ry
|
||||
d25rRklvOUdLQlU0S2l0WXBpUXhyR2MKQgJXQgxp0T2rr0V2NjwSjWFlzNyig5vW
|
||||
S8PW6OpCOyfMqzz5NWTdUVymY7UEdAguwZH+MY2DdvEn3NM/TcnRwA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2023-05-27T02:48:45Z"
|
||||
mac: ENC[AES256_GCM,data:SCjcJPn7hg9sUFYlOUKAVJBXKNIrcz/x3aqyX43xf7UO7Zo/pGDp1JDaKA7lCaKTgPEAe1zRRv6LjejNGX3DlpmxMS6o2xaI3nb0e0CnLj9t9t57L5svrciwh9wOennWj26DirgzAB+uqCJ/NGOJh4S8yTPOF5MgBNkqNw6FN94=,iv:YTtckdYzKnBBqbQYvjw9FpvGHsUxX6MnAeNopYhFe7I=,tag:BPUitJtY65JbnanHJgJatg==,type:str]
|
||||
pgp: []
|
||||
encrypted_regex: ^(data|stringData)$
|
||||
version: 3.7.3
|
@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: barretthousen
|
||||
annotations:
|
||||
description: |
|
||||
environment for barretthousen
|
||||
labels:
|
||||
name: barretthousen
|
||||
app: barretthousen
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: barretthousen-service
|
||||
imagePullSecrets:
|
||||
- name: bh-registry
|
@ -0,0 +1,24 @@
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: runner-sync
|
||||
spec:
|
||||
schedule: "*/2 * * * *"
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: runner-sync
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
containers:
|
||||
- name: runner-curl
|
||||
image: curlimages/curl:latest
|
||||
command:
|
||||
[
|
||||
"curl",
|
||||
"http://proxy-admin-local/api/v1/sync",
|
||||
'-d=''{"target":"liveauctioneers"}''',
|
||||
"-vvvv",
|
||||
]
|
@ -0,0 +1,22 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: catalog-config
|
||||
data:
|
||||
config.yaml: |
|
||||
log_level: 2
|
||||
port: 5001
|
||||
db_service:
|
||||
scheme: postgres
|
||||
port: 5432
|
||||
host: bh-db
|
||||
name: bh
|
||||
user: catalog-service
|
||||
password: catalog-service
|
||||
db_migrate:
|
||||
scheme: postgres
|
||||
port: 5432
|
||||
host: bh-db
|
||||
name: bh
|
||||
user: postgres
|
||||
password: bh-admin-beta
|
@ -1,7 +1,67 @@
|
||||
resources:
|
||||
- ../base
|
||||
|
||||
commonLabels:
|
||||
environment: beta
|
||||
nameSuffix: -beta
|
||||
namespace: barretthousen-beta
|
||||
|
||||
patchesStrategicMerge:
|
||||
- scrape-cronjob.yaml
|
||||
- catalog-configmap.yaml
|
||||
- proxy-admin-configmap.yaml
|
||||
- proxy-client-configmap.yaml
|
||||
- runner-configmap.yaml
|
||||
|
||||
namePrefix: beta-
|
||||
patches:
|
||||
- target:
|
||||
kind: Ingress
|
||||
name: admin
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/rules/0/host
|
||||
value: admin.beta.barretthousen.com
|
||||
- target:
|
||||
kind: Ingress
|
||||
name: web
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/rules/0/host
|
||||
value: beta.barretthousen.com
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: catalog
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/image
|
||||
value: git.vdhsn.com/barretthousen/service-catalog:beta
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: runner
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/image
|
||||
value: git.vdhsn.com/barretthousen/service-runner:beta
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: proxy-admin
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/image
|
||||
value: git.vdhsn.com/barretthousen/service-proxy-admin:beta
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: proxy-client
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/image
|
||||
value: git.vdhsn.com/barretthousen/service-proxy-client:beta
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: web-client
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/image
|
||||
value: git.vdhsn.com/barretthousen/client-web-client:beta
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/env/0/value
|
||||
value: https://beta.barretthousen.com
|
||||
|
@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: proxy-admin-config
|
||||
data:
|
||||
config.yaml: |
|
||||
log_level: 2
|
||||
port: 80
|
||||
endpoints:
|
||||
runner: runner-beta:5001
|
@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: proxy-client-config
|
||||
data:
|
||||
config.yaml: |
|
||||
log_level: 2
|
||||
port: 80
|
||||
access_control_allow_origin: "beta.barretthousen.com"
|
||||
endpoints:
|
||||
catalog: catalog-beta:5001
|
@ -0,0 +1,23 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: runner-config
|
||||
data:
|
||||
config.yaml: |
|
||||
log_level: 2
|
||||
port: 5001
|
||||
catalog_endpoint: catalog-beta:5001
|
||||
db_service:
|
||||
scheme: postgres
|
||||
port: 5432
|
||||
host: bh-db
|
||||
name: bh
|
||||
user: runner-service
|
||||
password: runner-service
|
||||
db_migrate:
|
||||
scheme: postgres
|
||||
port: 5432
|
||||
host: bh-db
|
||||
name: bh
|
||||
user: postgres
|
||||
password: bh-admin-beta
|
@ -0,0 +1,19 @@
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: runner-sync
|
||||
spec:
|
||||
schedule: "0 */2 * * *"
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: runner-curl
|
||||
command:
|
||||
[
|
||||
"curl",
|
||||
"http://proxy-admin-beta/api/v1/sync",
|
||||
'-d=''{"target":"liveauctioneers"}''',
|
||||
"-vvvv",
|
||||
]
|
@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: bh-registry
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
stringData:
|
||||
.dockerconfigjson: |
|
||||
{ "auths": {} }
|
@ -0,0 +1,23 @@
|
||||
{
|
||||
"created": "ENC[AES256_GCM,data:eyA43QPLejsqy/4SSWOkaLPMO2+EbuifxQ==,iv:0wEGpIk4023HaDqmXlCimTC4AviguxqzO8LSCIoBPow=,tag:XmpNZzlxNinyPnWP0U7dXQ==,type:str]",
|
||||
"public_key": "ENC[AES256_GCM,data:f7DxyKaLbgjHvTmNNa6K/pGqFtxrm/JmTQs+I00YQpr4XP8ja0ff+7vM2qi8hzYWQsZ8wiIr/VsPImi/RPQ=,iv:O23u+cuva4qJZ/OpVEoYr3o5X4GxsPt+U3Q5GgQLymc=,tag:6XJtLb/g+WJLhsFH6M6FlA==,type:str]",
|
||||
"private_key": "ENC[AES256_GCM,data:TTVQUdE+Xd1M3RHix2bkxggrxo3ILdmonjNcq9Ticb2WSIG+IuR+lytgSb+7UHzjFx8wr/lMfap/v7lAum+nYw08Fd56t0B4aHI=,iv:CmYfrd2MtwoyLxjqWC3TZRdK9CRs96n4BYo51MY6uzs=,tag:GYfVWSYE05/tdRaul4JPxw==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": null,
|
||||
"lastmodified": "2023-05-27T01:53:31Z",
|
||||
"mac": "ENC[AES256_GCM,data:nUmf5oSS+I7WPoJZ4hCpamhQRYeAeSWnzNM6OMAkar+ZXJ/LMynUNy2BA9hHbX6sNoMh7jrGrABAwfXqoGVCkl0F3PtHGky59uiQ0jmSU48n504dhL8/5kr16MeGSMCuVnp+oVy9V9tYFxt4LTxVzMK9mBr92B7kcRqKsb7jO6w=,iv:A5kjc0qtrTTTDOKBgKLslPwv+InCGNVOWLu1T3LmIYw=,tag:2vhk0BEk6MSZHW8zHrIuQg==,type:str]",
|
||||
"pgp": [
|
||||
{
|
||||
"created_at": "2023-05-27T01:53:31Z",
|
||||
"enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMAzSNwvjPuwiyAQ/9F9BIr5Qu9VC2y8gIBjNKiDxbR5sOo0gopJnCtAWoM4RU\nZO4aU3+MlUjr25PfYauqmdyc86vzDshbyfsQ8uQJW20pl4wJFzbtsSEgMio89FE5\nlfyKB9WcTvivrVUYSarXE7DrPvdr5qOh5qUrc6HLGaniwyN3MxGnm/qu5Ip2z3i8\n6g2GarUJmWXF1U8F0oXw069ImgvTd1u2gUC+CXMDSW+38FYN5dmtbo271g9/7Ikl\nEaP+7B9PlPUAav8IE/k/dGwqeQOjiEce6h0rxyl8PqgcTvxpaJ8Kd197iTovXeyt\nAK1Fv9sMVBBGi/pma85cPxkn8vU68v6LQJvMSwAJ8y+2rXrUb7nxFt1+iBvJWwRr\napGBhceLriV1eL9l0CtLpZNrQvvldF8mNMaNK0vVGdsDrHZq2wU9jSeKZq92Cy2y\nQ+0sEPlBKJIRTcrghtOgKbNatNWM7zShwmxAJ4Kw6qFSpEOTj9Y4WOL70ivWynSt\np7aaKbSwtwBcXezZZqp1C5/xlcrWal83bsjUqAnXhd30VYBw66JGhZa2PkD0VyqL\n4yoCUC9H8Ea8XtD/z4iG4y8z2yn/+Qa3KoW6vTp78i8OzdzqnfLB9pa6rinueaeV\n1S9y6B+kvwdqDTtgrIfGMUifaE0qE2ZKiPGbyKnqjUrBmY9VUsAQNTkfgXIhQnDS\nXAGDvTBFmmdZzEWE/OP+l1tdk88HJzfhDxIXxdncIYW79ib7bKoqRW6CcrPawxC+\nDn4ykqRZZNYw4j207YXqvYZWBKRCnInWKPmyfT9Ozfd7/HZnX91cKIawwPz2\n=ufAq\n-----END PGP MESSAGE-----\n",
|
||||
"fp": "A466CEE1415C0B9C"
|
||||
}
|
||||
],
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.7.3"
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
web-client
|
||||
.idea
|
@ -0,0 +1 @@
|
||||
build
|
@ -0,0 +1,9 @@
|
||||
FROM node:lts AS development
|
||||
|
||||
COPY . /opt/web-client
|
||||
|
||||
WORKDIR /opt/web-client
|
||||
|
||||
RUN npm install && npm install -g vite
|
||||
|
||||
CMD vite dev --port=80 --host=0.0.0.0 --strictPort --logLevel info
|
@ -1,42 +1,42 @@
|
||||
FROM node:lts AS development
|
||||
|
||||
COPY . /opt/web-client
|
||||
|
||||
WORKDIR /opt/web-client
|
||||
|
||||
RUN npm install && npm install -g vite
|
||||
|
||||
CMD vite dev --port=80 --host=0.0.0.0 --strictPort --logLevel info
|
||||
|
||||
FROM node:lts AS build
|
||||
|
||||
ARG origin=https://barretthousen.com
|
||||
|
||||
ENV ENV=production
|
||||
|
||||
ENV PROTOCOL_HEADER=x-forwarded-proto
|
||||
ENV HOST_HEADER=x-forwarded-host
|
||||
ENV ADDRESS_HEADER=True-Client-IP
|
||||
ENV ORIGIN=${origin}
|
||||
|
||||
WORKDIR /opt/web-client
|
||||
|
||||
COPY --from=development /opt/web-client .
|
||||
COPY . /opt/web-client
|
||||
|
||||
RUN npm build \
|
||||
&& cp -rv /opt/web-client/package.json /opt/web-client/build \
|
||||
&& cp -rv /opt/web-client/package-lock.json /opt/web-client/build
|
||||
RUN npm run build \
|
||||
&& cp -v /opt/web-client/package.json /opt/web-client/build \
|
||||
&& cp -v /opt/web-client/package-lock.json /opt/web-client/build \
|
||||
&& cd /opt/web-client/build && npm ci --omit dev
|
||||
|
||||
FROM node:lts AS production
|
||||
|
||||
LABEL com.barretthousen.service="web-client"
|
||||
LABEL com.barretthousen.tags="frontend,public"
|
||||
LABEL com.barretthousen.release-date="2023-05-01"
|
||||
LABEL com.barretthousen.version="alpha-0.0.1"
|
||||
LABEL com.barretthousen.git-ref="000000000000000000000000000000000000000000000000"
|
||||
|
||||
ARG origin=https://barretthousen.com
|
||||
|
||||
ENV ENV=production
|
||||
ENV PROTOCOL_HEADER=x-forwarded-proto
|
||||
ENV HOST_HEADER=x-forwarded-host
|
||||
ENV ORIGIN=${origin}
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
COPY --from=build /var/web-client/build/* /opt/web-client
|
||||
COPY --from=build /opt/web-client/build/ /opt/web-client/
|
||||
|
||||
ENV PORT 80
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
ENTRYPOINT ['node']
|
||||
CMD ['web-client']
|
||||
ENTRYPOINT ["node", "web-client"]
|
||||
|
||||
|
Loading…
Reference in new issue