angular-cn/aio/aio-builds-setup/docs/vm-setup--create-docker-image.md
George Kalpakas 2d065a32ec docs(docs-infra): improve docs on creating/updating the preview server Docker image (#37015)
This commit includes the following improvements:

- Document that the `create-image.sh` script (and by extention the
  `update-preview-server.sh` script) need to have access to a `yarn`
  executable.

- Add a note on cron jobs running in non-interactive, non-login shells
  (which affects their execution context and have different behavior vs
  running the same commands in an interactive, login shell).

- Change the Node.js and `yarn` installation instructions to ensure the
  `yarn` executable will be available on the `PATH` and not require an
  interactive, login shell (as happens, for example, when installing it
  via [nvm](https://github.com/nvm-sh/nvm)). This makes it easier to set
  up a cron job that runs the `update-preview-server.sh` script.

NOTE: The equivalent updates have been made on the GCE VM that hosts the
      PR preview server.

PR Close #37015
2020-05-18 10:24:20 -07:00

1.5 KiB

VM setup - Create docker image

Install git, Node.js and yarn

  • sudo apt-get update
  • sudo apt-get install -y git
  • Install the latest stable version of Node.js.
  • Install the latest stable version of yarn.

Checkout repository

  • git clone <repo-url>

Build docker image

  • <aio-builds-setup-dir>/scripts/create-image.sh [<name>[:<tag>] [--build-arg <NAME>=<value> ...]]
  • You can overwrite the default environment variables inside the image, by passing new values using --build-arg.

Note 1: The script has to execute docker commands with sudo.

Note 2: The script has to execute yarn commands, so make sure yarn is on the PATH when invoking the script.

Example

The following commands would create a docker image from GitHub repo foo/bar to be deployed on the foobar-builds.io domain and accepting PR deployments from authors that are members of the bar-core and bar-docs-authors teams of organization foo:

  • git clone https://github.com/foo/bar.git foobar
  • Run:
    ./foobar/aio-builds-setup/scripts/create-image.sh foobar-builds \
      --build-arg AIO_REPO_SLUG=foo/bar \
      --build-arg AIO_DOMAIN_NAME=foobar-builds.io \
      --build-arg AIO_GITHUB_ORGANIZATION=foo \
      --build-arg AIO_GITHUB_TEAM_SLUGS=bar-core,bar-docs-authors
    

A full list of the available environment variables can be found here.