Osedea / nodock

Docker Compose for Node projects with Node, MySQL, Redis, MongoDB, NGINX, Apache2, Memcached, Certbot and RabbitMQ images
http://nodock.io
MIT License
762 stars 189 forks source link

Support angular 5 hosted with nginx #103

Closed Granga closed 6 years ago

Granga commented 6 years ago

My application is consisted of angular 5 client, nodejs api, mongo db, and nginx.

From my understanding, I should include my angular dist files in the nginx image, but I'm not sure.

What is the most suitable way to include my angular 5 dist files?

philtrep commented 6 years ago

Hey @Granga ,

There are 2 approaches I'd recommend. Note that building your entire application in NoDock is the best option for simplicity's sake and environment consistency.

Frontend Development Inside NoDock

If you're using a task runner/bundler for your client app and you want to run it within NoDock, the simplest option is to mount the source files in the workspace service (add a volume in the docker-compose.yml).

Expose the port your bundler/task runner uses to serve the files in development.

Add a reverse proxy on the existing NGINX site config.

You can then run the client manually inside the workspace container

docker-compose exec workspace npm install
docker-compose exec workspace npm run dev # or whatever the build command is

Frontend Development Outside NoDock

Essentially what you said, simply mount a volume on the nginx service that points to the dist folder on your host and modify the NGINX configuration to serve it.

I hope this helps and do let me know how it goes! 🚀

Granga commented 6 years ago

I went with the second option for now, because of how my environment is setup.

Thank you.