Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
stage changes
  • Loading branch information
rodolfoIOET committed Jul 4, 2022
commit f7fce3351cd6d3b25e1ca21e14803f043edd02a2
11 changes: 10 additions & 1 deletion .github/workflows/time-tracker-ui-cd-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,16 @@ jobs:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- name: Build the docker image
run: make build_prod
run: |-
docker build \
--target production -t timetracker_ui \
--build-arg API_URL="${{secrets.API_URL_STAGE}}" \
--build-arg AUTHORITY="${{secrets.AUTHORITY}}" \
--build-arg CLIENT_ID="${{secrets.CLIENT_ID_STAGE}}" \
--build-arg CLIENT_URL="${{ secrets.CLIENT_URL_STAGE}}" \
--build-arg SCOPES="${{secrets.SCOPES}}" \
--build-arg AZURE_APP_CONFIGURATION_CONNECTION_STRING="${{secrets.AZURE_APP_CONFIGURATION_CONNECTION_STRING}}" \
.

- name: Publish docker image to stage azure container registry
run: |
Expand Down
23 changes: 16 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:14 AS development
FROM node:14 AS building

ENV USERNAME timetracker
ENV HOME /home/${USERNAME}
Expand All @@ -12,21 +12,30 @@ USER ${USERNAME}
RUN npm cache clean --force && npm install
EXPOSE 4200
EXPOSE 9876
CMD ${HOME}/time-tracker-ui/node_modules/.bin/ng serve --host 0.0.0.0 --disableHostCheck
ARG API_URL
ARG AUTHORITY
ARG CLIENT_ID
ARG CLIENT_URL
ARG SCOPES
ARG AZURE_APP_CONFIGURATION_CONNECTION_STRING

RUN API_URL=${API_URL} \
AUTHORITY=${AUTHORITY} \
CLIENT_ID=${CLIENT_ID} \
CLIENT_URL=${CLIENT_URL} \
SCOPES=${SCOPES} \
AZURE_APP_CONFIGURATION_CONNECTION_STRING=${AZURE_APP_CONFIGURATION_CONNECTION_STRING}



FROM development as build
COPY .env .
RUN npm run build


FROM nginx:1.21 AS production

ENV USERNAME app
RUN useradd -ms /bin/bash ${USERNAME}

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /home/timetracker/time-tracker-ui/dist/time-tracker /usr/share/nginx/html
COPY --from=building /home/timetracker/time-tracker-ui/dist/time-tracker /usr/share/nginx/html
COPY .env /usr/share/nginx/html
RUN chown -R ${USERNAME}:${USERNAME} /var/cache/nginx && \
chown -R ${USERNAME}:${USERNAME} /var/log/nginx && \
Expand Down
16 changes: 12 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,20 @@ publish: require-acr-arg require-image_tag-arg ## Upload a docker image to the s
docker push $(acr).azurecr.io/timetracker_ui:$(image_tag)

.PHONY: build_prod
build_prod: ## Create docker image with dependencies needed for production.
docker build --target production -t timetracker_ui_prod -f Dockerfile .
build_prod: ## Create docker image with dependencies needed for production -- to test locally only
docker build \
--target production -t timetracker_ui_prod \
--build-arg API_URL="${API_URL}" \
--build-arg AUTHORITY="${AUTHORITY}" \
--build-arg CLIENT_ID="${CLIENT_ID}" \
--build-arg CLIENT_URL="${CLIENT_URL}" \
--build-arg SCOPES="${SCOPES}" \
--build-arg AZURE_APP_CONFIGURATION_CONNECTION_STRING="${AZURE_APP_CONFIGURATION_CONNECTION_STRING}" \
.

.PHONY: run_prod
run_prod: ## Execute timetracker_ui_prod docker container.
docker run -d -p 80:80 --env-file ./.env --name timetracker_ui_prod timetracker_ui_prod
run_prod: ## Execute timetracker_ui_prod docker container -- to test locally only
docker run -d -p 80:80 --name timetracker_ui_prod timetracker_ui_prod

.PHONY: stop_prod
stop_prod: ## Stop container timetracker_ui_prod.
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.