Skip to content

Instantly share code, notes, and snippets.

@matthewpalmer
Created July 21, 2018 04:13
Show Gist options
  • Select an option

  • Save matthewpalmer/741dc7a4c418318f85f2fa8da7de2ea1 to your computer and use it in GitHub Desktop.

Select an option

Save matthewpalmer/741dc7a4c418318f85f2fa8da7de2ea1 to your computer and use it in GitHub Desktop.

Revisions

  1. matthewpalmer created this gist Jul 21, 2018.
    50 changes: 50 additions & 0 deletions pod.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    # Create a pod containing the PHP-FPM application (my-php-app)
    # and nginx, each mounting the `shared-files` volume to their
    # respective /var/www/html directories.

    kind: Pod
    apiVersion: v1
    metadata:
    name: phpfpm-nginx-example
    spec:
    volumes:
    # Create the shared files volume to be used in both pods
    - name: shared-files
    emptyDir: {}

    # Add the ConfigMap we declared above as a volume for the pod
    - name: nginx-config-volume
    configMap:
    name: nginx-config

    containers:
    # Our PHP-FPM application
    - image: my-php-app:1.0.0
    name: app
    volumeMounts:
    - name: shared-files
    mountPath: /var/www/html
    # Important! After this container has started, the PHP files
    # in our Docker image aren't in the shared volume. We need to
    # get them into the shared volume. If we tried to write directly
    # to this volume from our Docker image the files wouldn't appear
    # in the nginx container.
    #
    # So, after the container has started, copy the PHP files from this
    # container's local filesystem (/app -- added via the Docker image)
    # to the shared volume, which is mounted at /var/www/html.
    lifecycle:
    postStart:
    exec:
    command: ["/bin/sh", "-c", "cp -r /app/. /var/www/html"]

    # Our nginx container, which uses the configuration declared above,
    # along with the files shared with the PHP-FPM app.
    - image: nginx:1.7.9
    name: nginx
    volumeMounts:
    - name: shared-files
    mountPath: /var/www/html
    - name: nginx-config-volume
    mountPath: /etc/nginx/nginx.conf
    subPath: nginx.conf