Build a CRUD API with Docker Node.JS Express.JS & PostgreSQL

Поделиться
HTML-код
  • Опубликовано: 3 фев 2025

Комментарии • 53

  • @Smoljames
    @Smoljames  Год назад +17

    Here's a breakdown of each of the Dockerfile commands :) also don't mind the buggy facecam at the end of the video lol
    FROM - specifies the base image for the Docker image you are creating. All subsequent instructions in the Dockerfile will be applied on top of this base image.
    WORKDIR - sets the working directory for any subsequent instructions that follow it in the Dockerfile. This is where commands like RUN and COPY will be executed.
    COPY - copies files or directories from the host machine to the Docker image. The first argument is the path to the file or directory on the host machine, and the second argument is the destination path in the Docker image.
    RUN - executes a command in the Docker image. This can be used to install packages, run build commands, and do other tasks required to configure the image.
    EXPOSE - documents the ports that the Docker image is expected to listen on when it is run. It does not actually publish the ports.
    CMD - specifies the command to run when the Docker container is started from the image. If the Docker container is started with a command-line argument, it will override the CMD instruction. There can only be one CMD instruction in a Dockerfile, and it should be the last instruction.

  • @СергейДехтярёв-ъ4н

    Damn, I've never seen this Docker configuration. I've started learning backdev recently and the amount of project configurations is just mindblowing. It's really easy to get lost in this whole ocean of information

    • @Smoljames
      @Smoljames  Год назад +3

      Yea I feel you my friend! Just have to find the configurations you like and keep with them :)

    • @vladislav_artyukhov
      @vladislav_artyukhov 7 месяцев назад

      Docker configs is easy, actually. You really most time googling a ready solutions and modify/cobine by the need

  • @tunisiasparx2105
    @tunisiasparx2105 6 месяцев назад +1

    aswome , best rich example in minutes, dude your amazing , you just clarify everything as you go !
    thx

  • @VanderleiRobertoMoretto
    @VanderleiRobertoMoretto 3 месяца назад

    Simple, fast, direct ! Good job!

  • @AlexanderPoznanski
    @AlexanderPoznanski 4 месяца назад

    Thank you! Easy explained about using integration with database and with creating and checking what's going on with using Docker image! Additional thanks about details with port forwarding from outside to inside.

  • @programandocomandersonsouza
    @programandocomandersonsouza 11 месяцев назад +1

    Very good. Congratulation Smoljames.

  • @jackgame8841
    @jackgame8841 14 дней назад +1

    glad you use postgre instead of mongodb

  • @nutnut4868
    @nutnut4868 17 дней назад

    Amazing vid bro, helped Me a lot, thank u

  • @yatharthm22
    @yatharthm22 7 месяцев назад +3

    now in the same project can you please add kubernetes connectivity too?

  • @jindrichknedla7406
    @jindrichknedla7406 Год назад +1

    Great tutorial. Really helped! Thank you

  • @sammed.sankonatti
    @sammed.sankonatti Год назад +2

    Is this the way to create tables inside docker container of postgres ??
    What is the better and industry standard way ? Please explain

    • @Smoljames
      @Smoljames  Год назад

      There are numerous ways you can do it - this is just one. Another is to boot up the docker container and run a terminal command from within, and another is to execute a script that does an equivalent functionality.

    • @sammed.sankonatti
      @sammed.sankonatti Год назад

      @@Smoljames Thank you

  • @rwayneleon7481
    @rwayneleon7481 8 месяцев назад +1

    Great job. it really helped! Thank you

  • @miracle_chuks
    @miracle_chuks Месяц назад +2

    I wonder while you're using a get request to create a DB table, do you even need to use an endpoint to do that?

    • @Smoljames
      @Smoljames  Месяц назад +1

      absolutely not - it was just more to help people become accustomed to using endpoints :)

    • @miracle_chuks
      @miracle_chuks Месяц назад +1

      @@Smoljames 👍

  • @godofwar8262
    @godofwar8262 23 дня назад +1

    A full video on postgress sql + express user auth flow with jwt full

    • @Smoljames
      @Smoljames  23 дня назад

      Already available on my channel - see the backend course

  • @SpicyTysonM
    @SpicyTysonM 2 месяца назад

    Very on point and shoulrt and sweet. Thanks man. What is your vscode color theme btw ? Looks clean...

  • @walterandrade4273
    @walterandrade4273 Год назад +1

    great tutorial, thank you

    • @Smoljames
      @Smoljames  Год назад +1

      Thanks for the comment :)

  • @danilsyah4108
    @danilsyah4108 Год назад +1

    thanks a lot , great tutorial

    • @Smoljames
      @Smoljames  11 месяцев назад

      Cheers broski :P

  • @AlexanderPoznanski
    @AlexanderPoznanski 4 месяца назад

    I'd like to know/watch a solution how to prepare Docker image if I don't have Docker installed on my computer, but it is installed on a server and my devOps knows how to operate with Docker images, but I need to incorporate using of Docker image in a project as a developer. And once again, dev machine is working on one operating system, though server machine is working on different one. What should I consider for?

  • @muhammadmasood3830
    @muhammadmasood3830 4 месяца назад

    Helpfull tutorial❤

  • @pshycocoder
    @pshycocoder 4 месяца назад

    which vscode theme u r using?

  • @velkb228
    @velkb228 5 месяцев назад

    thanks bro, you rock

  • @krsnyder128
    @krsnyder128 3 месяца назад

    In the Dockerfile, could you also run "COPY . ." on line 5 instead and then "RUN npm install"? That would copy everything including the package*.json files and they are going to the same location.
    From what I can see there's no benefit in copying the json files, installing the packages, and then having to copy the rest of the project files, but maybe I misunderstand

    • @uvaishassan
      @uvaishassan 3 месяца назад +1

      I think it is to prevent copying the node_modules folder, which will be huge in size.

  • @denyscole7382
    @denyscole7382 Год назад +1

    Is there a specific reason for using commonjs modules over ES6 modules?

    • @Smoljames
      @Smoljames  Год назад

      good question - there can definitely be advantages for using commonjs modules but in this video it was mostly just out of habit - ES6 is a great way to go if you prefer to do it that way though!

    • @denyscole7382
      @denyscole7382 Год назад

      @@Smoljames Thank you for your response

  • @satymshrma
    @satymshrma 5 месяцев назад

    is it just me or does the video stop around 23:27?

  • @timlinator
    @timlinator Год назад +1

    I can't find this code on your git hub

    • @Smoljames
      @Smoljames  Год назад +1

      My apologies - link is here!
      github.com/jamezmca/docker-compose-example

    • @timlinator
      @timlinator Год назад

      @@Smoljames Thanks

  • @J3rist0
    @J3rist0 Год назад +1

    If I wanted to connect my pgAdmin to the postgres on the container how would I do this? I've spent more time than I'd like to admit trying to get that to work but with no results. Help would me much appreciated.

    • @rpoursalimi
      @rpoursalimi Год назад +4

      You need to bind a port to your db. To do so, you can add "ports" to your db service.
      In another word, make the "docker-compose.yaml" look like this:
      version: "3"
      services:
      db:
      image: postgres
      environment:
      POSTGRES_PASSWORD: password123
      POSTGRES_USER: user123
      POSTGRES_DB: db123
      ports:
      - 13001:5432
      app:
      image: my-node-app
      ports:
      - 13000:3000
      Then rebuild and dock your app and db again by running the following commands in the terminal:
      docker system prune
      docker build -t my-node-app .
      docker-compose up
      Now, you should be able to connect to your database on port 13001 by using the respected settings and credentials.

    • @J3rist0
      @J3rist0 Год назад +1

      @@rpoursalimi much appreciated

  • @Nate-yz2tv
    @Nate-yz2tv Год назад +1

    bro you saved me ty lol

  • @prashlovessamosa
    @prashlovessamosa Год назад +1

    Thanks.

  • @hnvahid
    @hnvahid Год назад +1

    Thanks

    • @Smoljames
      @Smoljames  Год назад

      You're welcome my broski :P

  • @sibbirshahriyar9742
    @sibbirshahriyar9742 Год назад +1

    Noice

  • @AbhishekKumar-lp5rc
    @AbhishekKumar-lp5rc Год назад

    Text size too small

    • @eduardoalvarez4457
      @eduardoalvarez4457 10 месяцев назад

      nope, it looks just fine on a 24" screen (iMac M1 on my case)