Oryx/doc/base_images.md

2.2 KiB

Build

The Oryx build image layers on Docker's buildpack-deps image, itself layered on Docker's basic debian image. The build image copies some required platforms from separate intermediate images, which can be built locally using the build-buildimage-platforms.sh script.

buildpack-deps includes development libraries for many common system packages required at build-time. The following system packages are also added to the Oryx image. If you require additional packages please open an issue.

  • jq
  • libgssapi-krb5-2 (for dotnetcore)
  • libicu57 (for dotnetcore)
  • liblttng-ust0 (for dotnetcore)
  • libstdc++6 (for dotnetcore)
  • unixodbc-dev (for MSSQL for Python)
  • tk-dev (for Python)
  • uuid-dev (for Python)

When building the application, Oryx tries to detect every programming platform being used and for each one that it finds, it adds the corresponding commands to the build script. If the user wants to disable a specific programming platform, there are a set of environment variables that can be set - please refer to Oryx configuration.

For instace, if there is a package.json file at the root of the repo but it is not in the format expected by npm, Oryx build will fail since it assumes that having that file in the repo's root means Node is being used. There's also an option to disable all platforms other than the one specified in oryx build or in AppService's language selection. Runtimes have more information on how each platform is detected.

Run

Oryx's run images build on Docker's runtime-specific images for Node.js and Python. A start script generator is included. Packages included for specific runtimes are described in their documentation.

Runtimes and versions supported by Oryx are listed in the main README.