Мы используем 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>