Difference between revisions of "IT-SDK-Angular"

From wiki.samerhijazi.net
Jump to navigation Jump to search
Line 5: Line 5:
 
* SRC: https://www.whitehorses.nl/blog/running-angular-application-docker-dummies
 
* SRC: https://www.whitehorses.nl/blog/running-angular-application-docker-dummies
 
* Angular requires Node.js version 10.9.0 or later.
 
* Angular requires Node.js version 10.9.0 or later.
==Angular-CLI (ng) Options==
+
=Angular-CLI (ng) Options=
 
<pre class="code">
 
<pre class="code">
 
new    : Greate new workspace.
 
new    : Greate new workspace.
Line 18: Line 18:
 
$ ng serve --open --port 4321    # Run the application on port 4321 and open  
 
$ ng serve --open --port 4321    # Run the application on port 4321 and open  
 
</pre>
 
</pre>
 
+
=Docker-File=
==Docker-File==
+
==Basic==
===Basic===
 
 
<pre class="code">
 
<pre class="code">
 
FROM node:11.6.0-alpine AS builder
 
FROM node:11.6.0-alpine AS builder
Line 32: Line 31:
 
</pre>
 
</pre>
  
===With QA===
+
==With QA==
 
<pre class="code">
 
<pre class="code">
 
FROM node:12.2.0 as build
 
FROM node:12.2.0 as build
Line 63: Line 62:
 
CMD ["nginx", "-g", "daemon off;"]  # run nginx
 
CMD ["nginx", "-g", "daemon off;"]  # run nginx
 
</pre>
 
</pre>
 
+
=Docker-CMD=
==Docker-CMD==
 
 
<pre class="code">
 
<pre class="code">
 
$ docker build -t angular-docker .
 
$ docker build -t angular-docker .
 
$ docker run -d -p 80:80 --env BACKEND_API_URL=yourApiUrl --env DEFAULT_LANGUAGE=de angular-docker
 
$ docker run -d -p 80:80 --env BACKEND_API_URL=yourApiUrl --env DEFAULT_LANGUAGE=de angular-docker
 
</pre>
 
</pre>

Revision as of 19:48, 9 December 2019

Web-Links

Angular-CLI (ng) Options

new    : Greate new workspace.
build  : Compiles the app.
serve  : Builds and Serves the app.
deploy : Invokes the builder for a specified project.

Life-Cycle: ng

$ npm install -g @angular/cli     # Install Angular CLI
$ ng new angular-app
$ ng serve --open --port 4321     # Run the application on port 4321 and open 

Docker-File

Basic

FROM node:11.6.0-alpine AS builder
COPY . ./angular-app
WORKDIR /angular-app
RUN npm install
RUN $(npm bin)/ng build --prod

FROM nginx:1.15.8-alpine
COPY --from=builder /angular-app/dist/angular-app/ /usr/share/nginx/html

With QA

FROM node:12.2.0 as build
#------------------------------
# install chrome for protractor tests
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -yq google-chrome-stable
#------------------------------
WORKDIR /app                           # set working directory
ENV PATH /app/node_modules/.bin:$PATH  # add `/app/node_modules/.bin` to $PATH
#--------------------------------------# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@7.3.9
COPY . /app
# run tests
RUN ng test --watch=false
RUN ng e2e --port 4202
# generate build
RUN ng build --output-path=dist
############
### prod ###
############
FROM nginx:1.16.0-alpine
# copy artifact build from the 'build environment'
COPY --from=build /app/dist /usr/share/nginx/html

EXPOSE 80                            # expose port 80
CMD ["nginx", "-g", "daemon off;"]   # run nginx

Docker-CMD

$ docker build -t angular-docker .
$ docker run -d -p 80:80 --env BACKEND_API_URL=yourApiUrl --env DEFAULT_LANGUAGE=de angular-docker