docusaurus/website-1.x/docs/getting-started-docker.md
Tomas Fernandez 13bfe8dbc9
docs(v1): Docker: remind the user to use the --host flag (#4048)
* Update getting-started-docker.md to remind the user to use the --host flag

Currently this part of the docs doesn't remind the user to use the --host flag. If the user doesn't use it, then the website will not be accessible outside of the docker container. This is what the user ultimately wants, to avoid using node and ruby and develop/productivize his website in a container.

* Upper case correction

Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>

Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
2021-01-15 19:16:47 +01:00

2.6 KiB
Raw Blame History

id title
docker Docker

Docker is a tool that enables you to create, deploy, and manage lightweight, stand-alone packages that contain everything needed to run an application. It can help us to avoid conflicting dependencies & unwanted behavior when running Docusaurus.

Run the local web server in docker

Ensure you have previously installed docker.

To run the local web server:

  1. Build the docker image -- Enter the folder where you have Docusaurus installed. Run docker build -t docusaurus-doc .

    Once the build phase finishes, you can verify the image exists by running docker images.

    We now include a Dockerfile when you install Docusaurus.

  2. Run the Docusaurus container -- To start docker run docker run --rm -p 3000:3000 docusaurus-doc

    This will start a docker container with the image docusaurus-doc. To see more detailed container info run docker ps .

To access Docusaurus from outside the docker container you must add the --host flag to the docusaurus-start command as described in: API Commands

Use docker-compose

We can also use docker-compose to configure our application. This feature of docker allows you to run the web server and any additional services with a single command.

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your applications services. Then, with a single command, you create and start all the services from your configuration.

Using Compose is a three-step process:

  1. Define your apps environment with a Dockerfile so it can be reproduced anywhere.

  2. Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.

  3. Run docker-compose up and Compose starts and runs your entire app.

We include a basic docker-compose.yml in your project:

version: '3'

services:
  docusaurus:
    build: .
    ports:
      - 3000:3000
      - 35729:35729
    volumes:
      - ./docs:/app/docs
      - ./website/blog:/app/website/blog
      - ./website/core:/app/website/core
      - ./website/i18n:/app/website/i18n
      - ./website/pages:/app/website/pages
      - ./website/static:/app/website/static
      - ./website/sidebars.json:/app/website/sidebars.json
      - ./website/siteConfig.js:/app/website/siteConfig.js
    working_dir: /app/website

To run a local web server with docker-compose run docker-compose up.

To build static HTML pages for publishing run docker-compose run docusaurus bash -c 'yarn publish-gh-pages'