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
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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