Развертывание проекта docker-compose с несколькими контейнерами в облаке Google - PullRequest
0 голосов
/ 08 марта 2019

Я хочу развернуть свой локальный проект докера в движке google kubernetes (или, если лучше, в google vm engine - я не знаю, какой из них больше подходит для этого проекта). После развертывания на движке kubernetes и выставления модуля на порт 80. Сайт WordPress не отображается.

Теперь я не знаю, если это из-за моего неправильного понимания cloudbuild.yaml? Могу ли я создать несколько контейнеров для моего модуля, и если, как я могу подключиться, например, к контейнеру WordPress или MySQL?

Я использую Google Cloud Builder для создания изображения из своего репозитория (используя cloudbuilder.yaml), а не Dockerfile.

Мой проект docker состоит из docker-compose.yaml, который использует следующие сервисы:

  1. MariaDB: последние
  2. nginx (пользовательская сборка с собственным Dockerfile)
  3. wordpress (пользовательская сборка с WordPress Cli, собственный Dockerfile)

Мой docker-compose.yaml ( Просмотреть форматированную версию здесь )

version: '3'

services:
  db:
    image: mariadb:latest
    container_name: mysql
    volumes:
      - mariadbdata:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=the_root_pass
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=eveneasier

   my-wordpress:
    container_name: wordpress
    depends_on:
      - db
    build:
      context: .
      dockerfile: build/wordpress/Dockerfile
    restart: always
    volumes:
      - ./wordpress:/var/www/html
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=eveneasier
      - WORDPRESS_DB_NAME=wordpress

  my-nginx:
    container_name: nginx
    depends_on:
      - my-wordpress
    restart: always
    volumes:
      - ./nginx:/etc/nginx/conf.d
      - ./logs/nginx
      - ./wordpress:/var/www/html
    build:
      context: .
      dockerfile: build/nginx/Dockerfile
    ports:
      - "8022:80"
      - "44322:443"
volumes:
  mariadbdata:
    driver: local

Вот мой cloudbuild.yaml

steps:
      - name: 'docker/compose:1.19.0'
        args: ['up', '-d']

      - name: 'gcr.io/cloud-builders/docker'
        args: ['tag', 'mariadb', 'gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']

      - name: 'gcr.io/cloud-builders/docker'
        args: ['tag', 'workspace_my-nginx', 'gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']

      - name: 'gcr.io/cloud-builders/docker'
        args: ['tag', 'workspace_my-wordpress', 'gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']

    images: ['gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA']

Во время записи мне было интересно, может быть, проблема в моем nginx.conf, потому что он использует localhost (127.0.0.1) в качестве хоста. Если так, то мои другие вопросы все еще остаются.

Мой nginx.conf:

        server {
        listen 80;
        server_name 127.0.0.1;

        root /var/www/html;
        index index.php;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass wordpress:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...