Установите Ghost на Apache Используя Docker и не используя Nginx - PullRequest
0 голосов
/ 25 февраля 2020

Мы используем ubuntu: 18.04 и пытаемся установить ghost на наш сервер Apache и подключить его к существующей базе данных mysql. Когда приходит время установить ghost, я запускаю:

ghost install --no-setup-nginx --no-setup-ssl --no-start --no-prompt -url http://localhost:4100/casper --db ${DB_DATABASE} --dbhost localhost --dbuser ${DB_USER} --dbpass ${DB_USER_PASSWORD} --dbname ${DB_DATABASE}

Однако я получаю сообщение об ошибке, что мне не хватает пакета nginx, хотя я установил флаг --no-setup-nginx

Если я пытаюсь установить ghost локально, используйте настройку ghost:

ghost install local ghost setup --no-setup-nginx --no-setup-ssl --no-start --no-prompt и введите мои mysql данные, которые он успешно установит, однако, если я зайду на URL, я получу блог с контентом и 404 ошибками для всех css и js. Он также не использует базу данных, о которой я говорил. Когда я смотрю, производственный конфиг был изменен с информацией sql, но не с конфигом разработки.

Я ценю любую помощь или понимание, которые кто-либо может дать, поскольку я занимался этим часами с очень небольшим успехом.

DockerFile

# Build using ubuntu
FROM ubuntu:18.04

# Install apache2 and other dendencies
RUN apt-get update && \
    apt-get -y upgrade && \
    apt-get install -y apache2 && \
    apt-get install -y apache2-utils && \
    apt-get install -y nano && \
    apt-get clean

# Run SSL and mod_rewrite on our server
RUN a2enmod rewrite ssl proxy proxy_http proxy_balancer lbmethod_byrequests

# Copy our apache server configurations files onto the server
COPY apache/development/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf
COPY apache/development/apache2/apache2.conf /etc/apache2/apache2.conf
COPY apache/development/html/.htaccess /var/www/html/.htaccess

# Expose port 80
EXPOSE 80

# Install curl and sudo, fetch node, install node and install ghost-cli
RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install curl -y \
    && apt-get install sudo -y \
    && apt-get install -y mysql-server \
    && curl -sL https://deb.nodesource.com/setup_10.x | bash \
    && apt-get install -yq nodejs \
    && npm install ghost-cli@latest -g

# Create bdblog user
RUN adduser --disabled-password --gecos '' bdblog
# Add user to superuser group
RUN adduser bdblog sudo
# Ensure passwords are skipped for bdblog user
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

# Create ghost directory, add our bdblog user as the owner and change write access on the folder
RUN mkdir -p /var/www/ghost \
    && chown -R bdblog /var/www/ghost \
    && chmod -R 775 /var/www/ghost

WORKDIR /var/www/ghost

USER bdblog

# At this point I am execing into my container and running these ghost install commands manually for speed

RUN ghost install --no-setup-nginx --no-setup-ssl --no-start --no-prompt --url http://localhost:4100/casper --db ${DB_DATABASE} --dbhost localhost --dbuser ${DB_USER} --dbpass ${DB_USER_PASSWORD} --dbname ${DB_DATABASE}

USER root

CMD ["apache2ctl", "-D", "FOREGROUND"]

Docker -Состав

version: '3.7'
services:
  ####
  # APACHE SERVER & BLOG SETUP
  ####
  server:
    container_name: bd-server
    build: .
    volumes:
      - ./dist:/var/www/html
      - ./apache/development/html/.htaccess:/var/www/html/.htaccess
    restart: always
    ports:
      - 4200:80
  ####
  # DATABASE
  ####
  database:
    image: mysql:5.7.29
    container_name: bd-database
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_USER_PASSWORD}
    volumes:
      -  ./docker/database/dump:/docker-entrypoint-initdb.d
    ports:
      - 3306:3306

000-default.conf

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass "/casper/"  "http://localhost:2368/casper/"
    ProxyPassReverse "/casper/"  "http://localhost:2368/casper/"
</VirtualHost>
...