diff --git a/.github/workflows/api-buildandpush.yaml b/.github/workflows/api-buildandpush.yaml index b7f6050f..b479868a 100644 --- a/.github/workflows/api-buildandpush.yaml +++ b/.github/workflows/api-buildandpush.yaml @@ -32,29 +32,11 @@ jobs: echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" echo "Short SHA: $SHORT_SHA" - # - name: Install dependencies - # run: dotnet restore - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Build - # run: dotnet build --configuration Release --no-restore - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Test - # run: dotnet test --no-restore --verbosity normal - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Push to Artifactory - # id: publish - # run: dotnet push artifacts.developer.gov.bc.ca/cac1-cas-api/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - - name: Docker Build Backend Image working-directory: ${{env.WORKING_DIRECTORY}} run: | docker build --tag api . --file api/Dockerfile docker tag api artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - # docker compose build backend - # docker tag cas-api artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - name: Docker Push to Artifactory id: publish @@ -62,3 +44,36 @@ jobs: run: | docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" api/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml + git commit -m "Update Dev Api image tag" + git push origin develop # Update the branch name as needed diff --git a/.github/workflows/app-vue.yml b/.github/workflows/app-vue.yml index 3313c862..8f83e28c 100644 --- a/.github/workflows/app-vue.yml +++ b/.github/workflows/app-vue.yml @@ -1,10 +1,6 @@ name: APP (Vue) on: - push: - branches: [main] - pull_request: - branches: [main] workflow_dispatch: env: IMAGE_NAME: cas-web @@ -22,15 +18,15 @@ jobs: node-version: [10.x] steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - working-directory: ${{env.working-directory}} - - run: npm run build --if-present --tag web - working-directory: ${{env.working-directory}} + # - uses: actions/checkout@v2 + # - name: Use Node.js ${{ matrix.node-version }} + # uses: actions/setup-node@v1 + # with: + # node-version: ${{ matrix.node-version }} + # - run: npm ci + # working-directory: ${{env.working-directory}} + # - run: npm run build --if-present --tag web + # working-directory: ${{env.working-directory}} - name: Login to Artifactory uses: docker/login-action@v1 @@ -39,6 +35,9 @@ jobs: username: ${{ secrets.CAS_ARTIFACTORY_USERNAME }} password: ${{ secrets.CAS_ARTIFACTORY_PASSWORD }} + - name: Checkout Repo + uses: actions/checkout@v4 + # Get SHORT_SHA to tag images - name: Get short SHA id: short_sha @@ -46,15 +45,55 @@ jobs: echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" echo "Short SHA: $SHORT_SHA" - - name: Docker Build Backend Image - working-directory: ${{env.working-directory}} - run: | - docker build --tag web . --file Dockerfile - docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + # - name: Docker Build Backend Image + # working-directory: ${{env.working-directory}} + # run: | + # docker build --tag web . --file Dockerfile + # docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - - name: Docker Push to Artifactory - id: publish - run: | + # - name: Docker Push to Artifactory + # id: publish + # run: | + # docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + + - name: Docker Build Image + run: | + docker build --tag nginx-runtime -f docker/nginx-runtime/Dockerfile ./docker/nginx-runtime/ + cd web + docker build --tag ss-web-artifacts -f Dockerfile.node . --build-arg WEB_BASE_HREF=${{ secrets.WEB_BASE_HREF }} + cd .. + docker build --tag web -f docker/vue-on-nginx/Dockerfile ./docker/vue-on-nginx/ + docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" web/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml diff --git a/.github/workflows/backup.yaml b/.github/workflows/backup.yaml new file mode 100644 index 00000000..2c652bd9 --- /dev/null +++ b/.github/workflows/backup.yaml @@ -0,0 +1,74 @@ +name: Backup + +on: + workflow_dispatch: +env: + IMAGE_NAME: backup + WORKING_DIRECTORY: ./ +jobs: + build: + runs-on: ubuntu-latest + + steps: + + - name: Login to Artifactory + uses: docker/login-action@v1 + with: + registry: artifacts.developer.gov.bc.ca + username: ${{ secrets.CAS_ARTIFACTORY_USERNAME }} + password: ${{ secrets.CAS_ARTIFACTORY_PASSWORD }} + + - name: Checkout Schema Spy Repo + uses: actions/checkout@v4 + with: + repository: BCDevOps/backup-container.git + ref: '2.6.1' + + # Get SHORT_SHA to tag images + - name: Get short SHA + id: short_sha + run: | + echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" + echo "Short SHA: $SHORT_SHA" + + - name: Docker Build Backup Image + run: | + cd docker + docker build --tag ${{ env.IMAGE_NAME }} . + docker tag ${{ env.IMAGE_NAME }} artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/backuptag: .*/backuptag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/backuptag: .*/backuptag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" backup/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml + + git commit -m "Update Dev Web image tag" + git push origin develop # Update the branch name as needed diff --git a/.github/workflows/schema-spy.yaml b/.github/workflows/schema-spy.yaml new file mode 100644 index 00000000..5e56bfa7 --- /dev/null +++ b/.github/workflows/schema-spy.yaml @@ -0,0 +1,70 @@ +name: Schema-Spy + +on: + workflow_dispatch: +env: + IMAGE_NAME: schema-spy + WORKING_DIRECTORY: ./ +jobs: + build: + runs-on: ubuntu-latest + + steps: + + - name: Login to Artifactory + uses: docker/login-action@v1 + with: + registry: artifacts.developer.gov.bc.ca + username: ${{ secrets.CAS_ARTIFACTORY_USERNAME }} + password: ${{ secrets.CAS_ARTIFACTORY_PASSWORD }} + + - name: Checkout Schema Spy Repo + uses: actions/checkout@v4 + with: + repository: bcgov/SchemaSpy.git + ref: master + + # Get SHORT_SHA to tag images + - name: Get short SHA + id: short_sha + run: | + echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" + echo "Short SHA: $SHORT_SHA" + + - name: Docker Build Schema Spy Image + run: | + docker build --tag ${{ env.IMAGE_NAME }} . + docker tag ${{ env.IMAGE_NAME }} artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" schema-spy/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml diff --git a/.github/workflows/web-buildandpush.yaml b/.github/workflows/web-buildandpush.yaml index df16ecf7..2fc5176b 100644 --- a/.github/workflows/web-buildandpush.yaml +++ b/.github/workflows/web-buildandpush.yaml @@ -31,39 +31,52 @@ jobs: - run: npm run build --if-present working-directory: ${{env.working-directory}} - # # Get SHORT_SHA to tag images - # - name: Get short SHA - # id: short_sha - # run: | - # echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" - # echo "Short SHA: $SHORT_SHA" - - # - name: Install dependencies - # run: dotnet restore - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Build - # run: dotnet build --configuration Release --no-restore - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Test - # run: dotnet test --no-restore --verbosity normal - # working-directory: ${{env.WORKING_DIRECTORY}} - - # - name: Push to Artifactory - # id: publish - # run: dotnet push artifacts.developer.gov.bc.ca/cac1-cas-api/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + # Get SHORT_SHA to tag images + - name: Get short SHA + id: short_sha + run: | + echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" + echo "Short SHA: $SHORT_SHA" - # - name: Docker Build Backend Image - # working-directory: ${{env.WORKING_DIRECTORY}}web/ - # run: | - # docker build --tag web . - # docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - # # docker compose build backend - # # docker tag cas-web artifacts.developer.gov.bc.ca/cac1-cas-web/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + - name: Docker Build Web Image + working-directory: ${{env.WORKING_DIRECTORY}}web/ + run: | + docker build --tag web . --file web/Dockerfile + docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} - name: Docker Push to Artifactory id: publish run: | docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/apitag: .*/apitag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" web/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml new file mode 100644 index 00000000..0ff35da3 --- /dev/null +++ b/.github/workflows/web.yaml @@ -0,0 +1,72 @@ +name: Web + +on: + workflow_dispatch: +env: + IMAGE_NAME: cas-web + WORKING_DIRECTORY: ./ +jobs: + builds: + runs-on: ubuntu-latest + + steps: + - name: Login to Artifactory + uses: docker/login-action@v1 + with: + registry: artifacts.developer.gov.bc.ca + username: ${{ secrets.CAS_ARTIFACTORY_USERNAME }} + password: ${{ secrets.CAS_ARTIFACTORY_PASSWORD }} + + - name: Checkout Repo + uses: actions/checkout@v4 + + # Get SHORT_SHA to tag images + - name: Get short SHA + id: short_sha + run: | + echo "::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)" + echo "Short SHA: $SHORT_SHA" + + - name: Checkout ArgoCD Repo + id: gitops + uses: actions/checkout@v4 + with: + repository: bcgov-c/tenant-gitops-ac1cc8 + ref: develop + token: ${{ secrets.GIT_OPS_SSH_KEY }} # `GH_PAT` is a secret that contains your PAT + path: gitops + + - name: Docker Build Image + run: | + docker build --tag nginx-runtime -f docker/nginx-runtime/Dockerfile ./docker/nginx-runtime/ + cd web + docker build --tag cas-web-artifacts -f Dockerfile.node . --build-arg WEB_BASE_HREF=${{ secrets.WEB_BASE_HREF }} + cd .. + docker build --tag web -f docker/vue-on-nginx/Dockerfile ./docker/vue-on-nginx/ + docker tag web artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + docker push artifacts.developer.gov.bc.ca/cac1-cas/${{ env.IMAGE_NAME }}:dev-${{ steps.short_sha.outputs.SHORT_SHA }} + + - name: Update Helm Values and Commit + id: helm + if: steps.gitops.outcome == 'success' # Only run if the previous step (publish) was successful + run: | + # Clone the GitOps deployment configuration repository + # Navigate to the directory containing your Helm values file for the environment develop -> DEV, test -> test and + cd gitops/charts + + # Update the Helm values file with the new image tag and version + DATETIME=$(date +'%Y-%m-%d %H:%M:%S') # Get current date and time + + sed -i "s/webtag: .*/webtag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" ../deploy/dev_values.yaml + + sed -i "s/webtag: .*/webtag: dev-${{ steps.short_sha.outputs.SHORT_SHA }} # Image Updated on $DATETIME/" web/values.yaml + + # Commit and push the changes + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions" + + git add . + + git add ../deploy/dev_values.yaml + git commit -m "Update Dev Web image tag" + git push origin develop # Update the branch name as needed diff --git a/api/Dockerfile b/api/Dockerfile index 3c596917..f32252c9 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -9,39 +9,22 @@ ENV VERSION=$VERSION FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build -# install diagnostics tools -RUN dotnet tool install --tool-path /tools dotnet-trace -RUN dotnet tool install --tool-path /tools dotnet-counters -RUN dotnet tool install --tool-path /tools dotnet-dump - -WORKDIR / +WORKDIR /src COPY ["api/api.csproj", "api/"] COPY ["db/db.csproj", "db/"] -COPY ["jc-interface-client/jc-interface-client.csproj", "jc-interface-client/"] - -RUN dotnet restore ./api/api.csproj -#RUN dotnet restore ./db/db.csproj +RUN dotnet restore api/api.csproj +RUN dotnet restore db/db.csproj COPY . . - -# Install Node.js and npm -RUN apt-get update -RUN apt-get install -y nodejs npm -RUN npm install -g autorest - -# run unit tests -#RUN dotnet test -c Release - +RUN dotnet build "api/api.csproj" -c Release # build FROM build AS publish -RUN dotnet publish "api/api.csproj" -c Release -o /app/publish -# --runtime linux-musl-x64 --no-self-contained +RUN dotnet publish "api/api.csproj" -c Release -o /app/publish --runtime linux-musl-x64 --no-self-contained FROM base AS final -# copy diagnostics tools -WORKDIR /tools -COPY --from=build /tools . + # copy app WORKDIR /app COPY --from=publish /app/publish . +COPY --from=build /src/db/sql /src/db/sql ENTRYPOINT ["dotnet", "api.dll"] diff --git a/api/Startup.cs b/api/Startup.cs index c293b4fc..cbd58ff3 100644 --- a/api/Startup.cs +++ b/api/Startup.cs @@ -42,6 +42,8 @@ public Startup(IWebHostEnvironment env, IConfiguration configuration) CurrentEnvironment = env; DevelopmentMode = CurrentEnvironment.IsDevelopment() && Configuration.GetNonEmptyValue("ByPassAuthAndUseImpersonatedUser").Equals("true"); + + AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); } private IConfiguration Configuration { get; } @@ -50,7 +52,7 @@ public void ConfigureServices(IServiceCollection services) { //for debugging purposes //IdentityModelEventSource.ShowPII = true; - + services.AddLogging(options => { options.AddConsole(c => @@ -143,10 +145,10 @@ public void ConfigureServices(IServiceCollection services) }); services.AddSwaggerGenNewtonsoftSupport(); - - services.AddQuartz(q => - { - q.AddJobAndTrigger(Configuration); + + services.AddQuartz(q => + { + q.AddJobAndTrigger(Configuration); }); services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true); } @@ -206,7 +208,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) app.UseEndpoints(endpoints => { - //Note this will allow access everywhere for local development. + //Note this will allow access everywhere for local development. if (DevelopmentMode) endpoints.MapControllers().WithMetadata(new AllowAnonymousAttribute()); else @@ -214,4 +216,4 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) }); } } -} \ No newline at end of file +} diff --git a/api/helpers/XForwardedForHelper.cs b/api/helpers/XForwardedForHelper.cs index 688142df..cbd29ceb 100644 --- a/api/helpers/XForwardedForHelper.cs +++ b/api/helpers/XForwardedForHelper.cs @@ -4,7 +4,7 @@ public static class XForwardedForHelper { public static string BuildUrlString(string forwardedHost, string forwardedPort, string baseUrl) { - var portComponent = string.IsNullOrEmpty(forwardedPort) || forwardedPort == "80" || forwardedPort == "443" ? "" : $":{forwardedPort}"; + var portComponent = string.IsNullOrEmpty(forwardedPort) || forwardedPort == "80" || forwardedPort == "443" || forwardedPort == "8080" ? "" : $":{forwardedPort}"; return $"https://{forwardedHost}{portComponent}{baseUrl}"; } } diff --git a/web/Dockerfile.node b/web/Dockerfile.node new file mode 100644 index 00000000..3390f3b1 --- /dev/null +++ b/web/Dockerfile.node @@ -0,0 +1,10 @@ +FROM centos/nodejs-10-centos7:10 +ARG WEB_BASE_HREF +ENV WEB_BASE_HREF="$WEB_BASE_HREF" +ENV WEB1_BASE_HREF="$WEB_BASE_HREF" +WORKDIR /opt/app-root/src +COPY . . +RUN echo "$WEB1_BASE_HREF" +RUN echo "$WEB_BASE_HREF" +RUN npm install +RUN npm run build