Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:docker3:en:dre02 [2023/12/17 05:24] – created adminelearning:workbooks:docker3:en:dre02 [2024/12/17 13:46] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version: **2023.01**+Version: **2024.01**
  
 Last update: ~~LASTMOD~~ Last update: ~~LASTMOD~~
Ligne 54: Ligne 54:
 RUN set -eux; \ RUN set -eux; \
         apt-get update; \         apt-get update; \
-        apt-get install -y --no-install-recommends +        apt-get install -y --no-install-recommends \ 
-                ca-certificates +                ca-certificates \ 
-                jq +                jq \ 
-                numactl+                numactl \
         ; \         ; \
         if ! command -v ps > /dev/null; then \         if ! command -v ps > /dev/null; then \
Ligne 72: Ligne 72:
         \         \
         apt-get update; \         apt-get update; \
-        apt-get install -y --no-install-recommends +        apt-get install -y --no-install-recommends \ 
-                wget+                wget \
         ; \         ; \
         if ! command -v gpg > /dev/null; then \         if ! command -v gpg > /dev/null; then \
Ligne 81: Ligne 81:
         \         \
         dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \         dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
-        wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \\+        wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
         wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \         wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
         export GNUPGHOME="$(mktemp -d)"; \         export GNUPGHOME="$(mktemp -d)"; \
Ligne 123: Ligne 123:
 RUN echo "deb http://$MONGO_REPO/apt/ubuntu bionic/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR multiverse" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" RUN echo "deb http://$MONGO_REPO/apt/ubuntu bionic/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR multiverse" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list"
  
-RUN set -x+RUN set -x \
         && apt-get update \         && apt-get update \
         && apt-get install -y \         && apt-get install -y \
                 ${MONGO_PACKAGE}=$MONGO_VERSION \                 ${MONGO_PACKAGE}=$MONGO_VERSION \
                 ${MONGO_PACKAGE}-server=$MONGO_VERSION \                 ${MONGO_PACKAGE}-server=$MONGO_VERSION \
-                ${MONGO_PACKAGE}-shell=$MONGO_VERSION \y+                ${MONGO_PACKAGE}-shell=$MONGO_VERSION \
                 ${MONGO_PACKAGE}-mongos=$MONGO_VERSION \                 ${MONGO_PACKAGE}-mongos=$MONGO_VERSION \
                 ${MONGO_PACKAGE}-tools=$MONGO_VERSION \                 ${MONGO_PACKAGE}-tools=$MONGO_VERSION \
Ligne 142: Ligne 142:
 ENTRYPOINT ["docker-entrypoint.sh"] ENTRYPOINT ["docker-entrypoint.sh"]
  
-EXHIBIT 27017+EXPOSE 27017
 CMD ["mongod"] CMD ["mongod"]
 </code> </code>
Ligne 164: Ligne 164:
 if [[ "$originalArgOne" == mongo* ]] && [ "$(id -u)" = '0' ]; then if [[ "$originalArgOne" == mongo* ]] && [ "$(id -u)" = '0' ]; then
         if [ "$originalArgOne" = 'mongod' ]; then         if [ "$originalArgOne" = 'mongod' ]; then
-                find /data/configdb /data/db ! -user mongodb -exec chown mongodb '{}' ++                find /data/configdb /data/db \! -user mongodb -exec chown mongodb '{}' +
         fi         fi
  
Ligne 185: Ligne 185:
  
 # usage: file_env VAR [DEFAULT] # usage: file_env VAR [DEFAULT]
-# ie: file_env 'XYZ_DB_PASSWORD' 'example'+   ie: file_env 'XYZ_DB_PASSWORD' 'example'
 # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
-# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)+ "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
 file_env() { file_env() {
         local var="$1"         local var="$1"
Ligne 291: Ligne 291:
 # _js_escape 'some "string" value' # _js_escape 'some "string" value'
 _js_escape() { _js_escape() {
-        jq --null-input --arg 'str' "$1" "$str'+        jq --null-input --arg 'str' "$1" '$str'
 } }
  
Ligne 305: Ligne 305:
                 # if --config is specified, parse it into a JSON file so we can remove a few problematic keys (especially SSL-related keys)                 # if --config is specified, parse it into a JSON file so we can remove a few problematic keys (especially SSL-related keys)
                 # see https://docs.mongodb.com/manual/reference/configuration-options/                 # see https://docs.mongodb.com/manual/reference/configuration-options/
-                mongo --norc --nodb --quiet --eval "load('/js-yaml.js'); printjson(jsyaml.load(cat($(_js_escape "$configPath"))))"" > "$jsonConfigFile"+                mongo --norc --nodb --quiet --eval "load('/js-yaml.js'); printjson(jsyaml.load(cat($(_js_escape "$configPath"))))" > "$jsonConfigFile"
                 jq 'del(.systemLog, .processManagement, .net, .security)' "$jsonConfigFile" > "$tempConfigFile"                 jq 'del(.systemLog, .processManagement, .net, .security)' "$jsonConfigFile" > "$tempConfigFile"
                 return 0                 return 0
Ligne 470: Ligne 470:
                                 *.sh) echo "$0: running $f"; . "$f" ;;                                 *.sh) echo "$0: running $f"; . "$f" ;;
                                 *.js) echo "$0: running $f"; "${mongo[@]}" "$MONGO_INITDB_DATABASE" "$f"; echo ;;                                 *.js) echo "$0: running $f"; "${mongo[@]}" "$MONGO_INITDB_DATABASE" "$f"; echo ;;
-                                *) echo "$0: ignoring $f" ;;+                                *)    echo "$0: ignoring $f" ;;
                         esac                         esac
                         echo                         echo
Ligne 950: Ligne 950:
 =====LAB #2 - Creating a Dockerfile===== =====LAB #2 - Creating a Dockerfile=====
  
-====2.1 - Creating and testing the==== script+====2.1 - Creating and testing the script ====
  
 Create a directory named myDocker: Create a directory named myDocker:
Ligne 1103: Ligne 1103:
  
 <code> <code>
-root@debian11:~/myDocker# docker start myDocker+root@debian11:~/myDocker# docker pause myDocker
 myDocker myDocker
  
 root@debian11:~/myDocker# docker ps root@debian11:~/myDocker# docker ps
 CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                               NAMES CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                               NAMES
-97fe360bb1d6   i2tch/mydocker       "/entrypoint.sh myco…"   6 minutes ago    Up 5 seconds                                        myDocker+97fe360bb1d6   i2tch/mydocker       "/entrypoint.sh myco…"   6 minutes ago    Up 5 seconds (Paused)                               myDocker
 880733c6bdc3   i2tch/mongodb2       "docker-entrypoint.s…"   56 minutes ago   Up 56 minutes   27017/tcp                           mongo2 880733c6bdc3   i2tch/mongodb2       "docker-entrypoint.s…"   56 minutes ago   Up 56 minutes   27017/tcp                           mongo2
 885f75b6aa57   ittraining/mongodb   "bash"                   8 hours ago      Up 8 hours                                          mongo 885f75b6aa57   ittraining/mongodb   "bash"                   8 hours ago      Up 8 hours                                          mongo
Ligne 1601: Ligne 1601:
 ----- -----
  
-Copyright © 2023 Hugh Norris.+Copyright © 2024 Hugh Norris.
Menu