forked from bregman-arie/devops-exercises
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CI/CD will include Jenkins and other CI/CD systems. In addition, added a couple of questions on various topics.
- Loading branch information
abregman
committed
Oct 31, 2021
1 parent
353ae7f
commit 046b154
Showing
13 changed files
with
353 additions
and
125 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
## AZ-900 | ||
|
||
<details> | ||
<summary>What is cloud computing?</summary><br><b> | ||
|
||
[Wikipedia](https://en.wikipedia.org/wiki/Cloud_computing): "Cloud computing is the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user" | ||
</b></details> | ||
|
||
<details> | ||
<summary>What types of clouds (or cloud deployments) are there?</summary><br><b> | ||
|
||
* Public - Cloud services sharing computing resources among multiple customers | ||
* Private - Cloud services having computing resources limited to specific customer or organization, managed by third party or organizations itself | ||
* Hybrid - Combination of public and private clouds | ||
</b></details> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
## Multi-Stage Builds | ||
|
||
### Objective | ||
|
||
Learn about multi-stage builds | ||
|
||
### Instructions | ||
|
||
1. Without actually building an image or running any container, use the following Dockerfile and convert it to use multi-stage: | ||
|
||
``` | ||
FROM nginx | ||
RUN apt-get update \ | ||
&& apt-get install -y curl python build-essential \ | ||
&& apt-get install -y nodejs \ | ||
&& apt-get clean -y | ||
RUN mkdir -p /my_app | ||
ADD ./config/nginx/docker.conf /etc/nginx/nginx.conf | ||
ADD ./config/nginx/k8s.conf /etc/nginx/nginx.conf.k8s | ||
ADD app/ /my_cool_app | ||
WORKDIR /my_cool_app | ||
RUN npm install -g ember-cli | ||
RUN npm install -g bower | ||
RUN apt-get update && apt-get install -y git \ | ||
&& npm install \ | ||
&& bower install \ | ||
RUN ember build — environment=prod | ||
CMD [ “/root/nginx-app.sh”, “nginx”, “-g”, “daemon off;” ] | ||
``` | ||
|
||
2. What are the benefits of using multi-stage builds? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
## Multi-Stage Builds | ||
|
||
### Objective | ||
|
||
Learn about multi-stage builds | ||
|
||
### Instructions | ||
|
||
1. Without actually building an image or running any container, use the following Dockerfile and convert it to use multi-stage: | ||
|
||
``` | ||
FROM nginx | ||
RUN apt-get update \ | ||
&& apt-get install -y curl python build-essential \ | ||
&& apt-get install -y nodejs \ | ||
&& apt-get clean -y | ||
RUN mkdir -p /my_app | ||
ADD ./config/nginx/docker.conf /etc/nginx/nginx.conf | ||
ADD ./config/nginx/k8s.conf /etc/nginx/nginx.conf.k8s | ||
ADD app/ /my_cool_app | ||
WORKDIR /my_cool_app | ||
RUN npm install -g ember-cli | ||
RUN npm install -g bower | ||
RUN apt-get update && apt-get install -y git \ | ||
&& npm install \ | ||
&& bower install \ | ||
RUN ember build — environment=prod | ||
CMD [ “/root/nginx-app.sh”, “nginx”, “-g”, “daemon off;” ] | ||
``` | ||
|
||
2. What are the benefits of using multi-stage builds? | ||
|
||
### Solution | ||
|
||
1. One possible solution (the emphasize is on passing the app from the first stage): | ||
|
||
``` | ||
FROM node:6 | ||
RUN mkdir -p /my_cool_app | ||
RUN npm install -g ember-cli | ||
RUN npm install -g bower | ||
WORKDIR /my_cool_app | ||
RUN npm install | ||
ADD app/ /my_cool_app | ||
RUN bower install | ||
RUN ember build — environment=prod | ||
FROM nginx | ||
RUN mkdir -p /my_cool_app | ||
ADD ./config/nginx/docker.conf /etc/nginx/nginx.conf | ||
ADD ./config/nginx/k8s.conf /etc/nginx/nginx.conf.k8s | ||
# Copy build artifacts from the first stage | ||
COPY — from=0 /my_cool_app/dist /my_cool_app/dist | ||
WORKDIR /my_cool_app | ||
CMD [ “/root/nginx-app.sh”, “nginx”, “-g”, “daemon off;” ] | ||
``` | ||
|
||
2. Multi-stages builds allow you to produce smaller container images by splitting the build process into multiple stages as we did above. The app image doesn't contain anything related to the build process except the actual app. |
This file was deleted.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.