【发布时间】:2019-04-16 19:23:42
【问题描述】:
我已经能够使用 mysql 和 phpmyadmin 与 Docker 一起运行 wordpress。
问题是我在我的主题、插件中使用 gulp,因此需要在我的主机文件和我的 docker 容器之间实现浏览器同步。
我一直在网上查找,发现只有一个与我的情况非常接近的例子:Browsersync within a Docker container。
所以我尝试通过添加一个带有个人 Dockerfile 的新 docker 容器节点来遵循他的 docker-compose.yml 文件。
这是我的 docker-compose 和 Dockerfile(节点)文件:
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 为空,当我对我的 Dockerfile 执行 docker build 时,我得到一个退出的容器,但是当我使用节点的 Kitematic 应用程序创建一个 docker 容器时,我得到它正确。我在这里做错了什么?除了我的主要问题之外,我的配置看起来不错吗?
感谢您的帮助。
【问题讨论】:
标签: node.js wordpress gulp docker-compose dockerfile