Skip to content

Advanced app.yaml Examples

These are examples of the types of app.yaml structures that can be used. The other files required are not given here.

nginx

app.yaml Example
spec_version: 5.0.0
type: docker

name: nginx-example
title: nginx-example
version: 1.0.0
description: nginx-example

flags:
  enable_runtime_update:
    configuration: false

ui_schemas:
    configuration: "ui_schemas/configuration.json"

defaults:
  system:
    ports:
      - name: http-port
        type: host
        host:
          port: 8080
    privileged: false
    volumes:
      - name: nginx-config
        type: text
        target: /etc/nginx/conf.d/default.conf
        text:
            encoding: utf-8
            data: >-
            server {
                listen       8080;
                listen  [::]:8080;
                server_name  nginx-example;

                location / {
                    root   /usr/share/nginx/html;
                    index  index.html index.htm;
                }

                error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                    root   /usr/share/nginx/html;
                }
            }
      - name: static-page
        type: text
        target: /usr/share/nginx/html/index.html
        text:
            base64: true
            encoding: utf-8
            data: >-
            PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPmtlbHZpbi5haTwvdGl0bGU+CiAgICA8c3R5bGU+CiAgICAgICAgKiB7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CgogICAgICAgIGJvZHkgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBkMGQwZDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIC50ZXh0LWNvbnRhaW5lciB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwMHB4OwogICAgICAgIH0KCiAgICAgICAgLnRleHQgewogICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVBbmltYXRpb24gMTJzIGluZmluaXRlOwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgICB0ZXh0LXdyYXA6IG5vd3JhcDsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgLnRleHQ6bnRoLWNoaWxkKDEpIHsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwczsKICAgICAgICB9CgogICAgICAgIC50ZXh0Om50aC1jaGlsZCgyKSB7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogM3M7CiAgICAgICAgfQoKICAgICAgICAudGV4dDpudGgtY2hpbGQoMykgewogICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDZzOwogICAgICAgIH0KCiAgICAgICAgLnRleHQ6bnRoLWNoaWxkKDQpIHsKICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA5czsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgZmFkZUFuaW1hdGlvbiB7CiAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoODBweCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIDEwJSB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICA0MCUgewogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAxMDAlIHsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDxkaXYgY2xhc3M9InRleHQtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiA1MHg7Ij5LZWx2aW4uYWk8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMDBweDsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij5BdXRvbm9tb3VzIENvbnRyb2wgQXBwczwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij53aXRoIHNlYW1sZXNzIE1MIGludGVncmF0aW9uPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPndpdGggZWZmb3J0bGVzcyBkYXRhIHN0cmVhbWluZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij53aXRoIHNjYWxhYmxlIGVkZ2UgZGVwbG95bWVudDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvYm9keT4KCjwvaHRtbD4=
  configuration:
    ip-range: 0.0.0.0
    port: 1880

influxdb

app.yaml Example
spec_version: 5.0.0
type: docker

name: influxdb-example
title: influxdb-example
version: 1.0.0
description: influxdb-example

flags:
  enable_runtime_update:
    configuration: false

ui_schemas:
    configuration: "ui_schemas/configuration.json"

defaults:
    system:
      ports:
        - name: influxdb-port
          type: host
          host:
            port: 8086
        - service:
            exposed: true
            port: 8086
            exposed_port: 30100
          type: service
          name: influxdb-port
    volumes:
        - name: influxdb-data
          type: persistent
          target: /var/lib/influxdb
    privileged: false