SoftTimur
SoftTimur

Reputation: 5490

How do I run a website in bitnami+docker+nginx

I'm taking over a website https://www.funfun.io. Unfortunately, I cannot reach the previous developer anymore.

This is a AngularJS+Node+Express+MongoDB application. He decided to use bitnami+docker+nginx in the server. Here is docker-compose.yml:

version: "3"
services:
  funfun-node:
    image: funfun
    restart: always
    build: .
    environment:
    - MONGODB_URI=mongodb://mongodb:27017/news
    env_file:
    - ./.env
    depends_on:
    - mongodb
  funfun-nginx:
    image: funfun-nginx
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.nginx
    ports:
    - "3000:8443"
    depends_on:
    - funfun-node
  mongodb:
    image: mongo:3.4
    restart: always
    volumes:
    - "10studio-mongo:/data/db"
    ports:
    - "27018:27017"
networks:
  default:
    external:
      name: 10studio
volumes:
  10studio-mongo:
    driver: local

Dockerfile.nginx:

FROM bitnami/nginx:1.16
COPY ./funfun.io /opt/bitnami/nginx/conf/server_blocks/default.conf
COPY ./ssl/MyCompanyLocalhost.cer /opt/MyCompanyLocalhost.cer
COPY ./ssl/MyCompanyLocalhost.pvk /opt/MyCompanyLocalhost.pvk

Dockerfile:

FROM node:12
RUN npm install -g yarn nrm --registry=https://registry.npm.taobao.org && nrm use cnpm
COPY ./package.json /opt/funfun/package.json
WORKDIR /opt/funfun
RUN yarn
COPY ./ /opt/funfun/
CMD yarn start

In my local machine, I could use npm start to test the website in a web browser.

I have access to the Ubuntu server. But I'm new to bitnami+docker+nginx, I have the following questions:

  1. In the command line of Ubuntu server, how could I check if the service is running (besides launching the website in a browser)?

  2. How could I shut down and restart the service?

  3. Previously, without docker, we could start mongodb by sudo systemctl enable mongod. Now, with docker, how could we start mongodb?

Upvotes: 0

Views: 887

Answers (2)

Al-waleed Shihadeh
Al-waleed Shihadeh

Reputation: 2845

First of all, to deploy the services mentioned in the compose file locally, you should run the below command

docker-compose up
docker-compose up -d # in the background 

After running the above command docker containers will be created and available on your machine.

To list the running containers

docker ps
docker-compose ps

To stop containers

docker stop ${container name}
docker-compose stop

mongodb is part of the docker-compose file and it will be running once you start other services. It will also be restarted automatically in case it crashes or you restarted your machine.

One final note, since you are using external networks you may need to create the network before starting the services.

Upvotes: 1

J-Jacques M
J-Jacques M

Reputation: 1118

1.

  • docker-compose ps will give you the state of your containers

2.

  • docker-compose stop will stop your containers, keeping their state then you may start them as their are using docker-compose up

  • docker-compose kill will delete your containers

  • docker-compose restart will restart your containers

3.

  • By declaring your mongodb using an official mongo image your container start when you do docker-compose up without any other intervention.

  • Or you can add command: mongod --auth directly into your docker-compose.yml

the official documentation of docker is very detailed and help a lot for all of this, keep looking on it https://docs.docker.com/compose/

Upvotes: 0

Related Questions