Мне удалось запустить wordpress с mysql и phpmyadmin вместе с Docker.
Проблема в том, что я использую gulp со своими темами, плагинами и поэтому мне нужно реализовать синхронизацию браузеров между моими хост-файлами и моим контейнером докеров.
Я искал в Интернете и нашел только один пример, очень близкий к моему случаю: Browsersync в контейнере Docker.
Поэтому я попытался последовать за его файлом docker-compose.yml, добавив новый узел контейнера докеров с личным файлом Dockerfile.
Вот мои файлы docker-compose и Dockerfile (node):
docker-compose.yml:
version: '3'
services:
wordpress:
image: wordpress:latest
build:
dockerfile: Dockerfile
context: ./
container_name: wordpress
links:
- mysql
environment:
- WORDPRESS_DB_USER=user
- WORDPRESS_DB_NAME=db_name
- WORDPRESS_TABLE_PREFIX=prefix_
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_HOST=mysql:3306
restart: unless-stopped
ports:
- 80:80
volumes:
- file_data:/var/www/html/Project
networks:
- back
mysql:
image: mysql:latest
container_name: mysql
command: mysqld --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=db_name
- MYSQL_HOST=localhost
- MYSQL_PASSWORD=password
restart: unless-stopped
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
- ./config/database/db.sql:/docker-entrypoint-initdb.d/db.sql
networks:
- back
phpmyadmin:
depends_on:
- mysql
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: unless-stopped
ports:
- 8088:80
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: password
networks:
- back
node:
restart: unless-stopped
image: node:latest
container_name: nodejs
depends_on:
- wordpress
volumes:
- file_data:/usr/src/app
build:
dockerfile: Dockerfile
context: ./Gulp
ports:
- 3000:3000
- 3001:3001
networks:
back: {}
volumes:
db_data: {}
file_data: {}
Dockerfile:
FROM node:latest
# Create app directory
WORKDIR /usr/src/app/Gulp
# Install app dependencies
COPY Gulp Project ../
RUN npm rebuild && npm install && npm install gulp@next && npm install --global gulp-cli
EXPOSE 8080
CMD [ "gulp" ]
Но основная проблема заключается в том, как выглядит мой Dockerfile, даже если он пуст только с FROM node:latest, когда я делаю docker build своего Dockerfile, я получаю закрытый контейнер, но когда я создаю контейнер докера с приложением Kitematic узла, я получаю его правильно. Что я здесь делаю не так? И выглядит ли моя конфигурация хорошо, кроме моей основной проблемы?
Спасибо за вашу помощь.





В файле докеров вашего узла вам нужно изменить порт с 8080
EXPOSE 3000
EXPOSE 3001
Извините, я не понял ваш вопрос. Что вы хотите от команды "gulp"? Это запускает ваш проект?
Хорошо, я добавлю свой gulpfile для объяснения. Но, чтобы продолжить, я использую gulp для обновления моих php, js и css моей темы и плагина, просматривая их с помощью gulp browsersync.
@jardindeden Снова обновлен. Это помогло?
Да, я пытаюсь создать образ, а затем запустить его с помощью docker-compose. Но когда я выполняю docker-compose, все контейнеры, кроме node. Так что я пытаюсь сначала запустить его в одиночку. Я понял, что даже выполнить команду
docker runиз узла образа: latest у меня даже не работает .. Что там не так? изображение или моя команда запуска докера?docker run -d node