Я хочу развернуть свой локальный проект докера в движке google kubernetes (или, если лучше, в google vm engine - я не знаю, какой из них больше подходит для этого проекта). После развертывания на движке kubernetes и выставления модуля на порт 80. Сайт WordPress не отображается.
Теперь я не знаю, если это из-за моего неправильного понимания cloudbuild.yaml? Могу ли я создать несколько контейнеров для моего модуля, и если, как я могу подключиться, например, к контейнеру WordPress или MySQL?
Я использую Google Cloud Builder для создания изображения из своего репозитория (используя cloudbuilder.yaml), а не Dockerfile.
Мой проект docker состоит из docker-compose.yaml, который использует следующие сервисы:
- MariaDB: последние
- nginx (пользовательская сборка с собственным Dockerfile)
- 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;
}
}