osedea / nodock Goto Github PK
View Code? Open in Web Editor NEWDocker Compose for Node projects with Node, MySQL, Redis, MongoDB, NGINX, Apache2, Memcached, Certbot and RabbitMQ images
Home Page: http://nodock.io
License: MIT License
Docker Compose for Node projects with Node, MySQL, Redis, MongoDB, NGINX, Apache2, Memcached, Certbot and RabbitMQ images
Home Page: http://nodock.io
License: MIT License
Some of the examples have have few extra lines i.e. cp
2+ times.
We should simplify this to increase adoption.
We should never specify 0.0.0.0
as value for the the bind-address
option.
We should find a way to replace 0.0.0.0
by other containers local IPs.
This should make reusing images easier
NoDock should be able to run in production successfully.
As discussed in #96
Given the popularity of redis, would be worthwhile to have it added to the existing services.
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?
There's a good amount of projects that run multiple Node applications at the same time, we should find a way to do so.
Right now only HTTP is supported
We want persistent data that is accessible from the host.
Caddy seems to be rising in popularity, it would be worthwhile to investigate integrating it with NoDock.
The goal of this is to allow for, among other things, node container files from multiple directories.
Right now the NODE_ENV is not defined, it should be production by default.
At the moment, nginx will only forward port 8000 from node
If we want to have the whole development of a node project doable from NoDock, we a way to init the project, maybe provide scaffolding?
I get error when running the docker-compose up -d mongo node nginx
command.
My OS: Windows 8.1
Terminal: Hyper
Here is the command's output:
$ docker-compose up -d mongo node nginx
Building nginx
Step 1/16 : FROM nginx:1.11
---> 5766334bdaa0
Step 2/16 : RUN mkdir /etc/nginx/sites-available && rm /etc/nginx/conf.d/default.conf
---> Using cache
---> 4892dddb739b
Step 3/16 : ADD nginx.conf /etc/nginx/
---> Using cache
---> 03b774e4cfd5
Step 4/16 : COPY scripts /root/scripts/
---> Using cache
---> 36c6047daf6a
Step 5/16 : COPY certs /etc/ssl/
---> Using cache
---> b90502ed266c
Step 6/16 : COPY sites /etc/nginx/templates
---> Using cache
---> 19c271ddb0af
Step 7/16 : ARG WEB_REVERSE_PROXY_PORT=8000
---> Using cache
---> f81484e144ab
Step 8/16 : ARG WEB_SSL=false
---> Using cache
---> c8811228c3df
Step 9/16 : ARG SELF_SIGNED=false
---> Using cache
---> dcfdad9868e4
Step 10/16 : ARG NO_DEFAULT=false
---> Using cache
---> ce8f9a09dc8b
Step 11/16 : ENV WEB_REVERSE_PROXY_PORT=$WEB_REVERSE_PROXY_PORT
---> Using cache
---> f917d6e76e24
Step 12/16 : ENV WEB_SSL=$WEB_SSL
---> Using cache
---> 302da37baf92
Step 13/16 : ENV SELF_SIGNED=$SELF_SIGNED
---> Using cache
---> fa5467ae20c8
Step 14/16 : ENV NO_DEFAULT=$NO_DEFAULT
---> Using cache
---> a1e25dc9605c
Step 15/16 : RUN /bin/bash /root/scripts/build-nginx.sh
---> Running in ddbcba4481b9
/root/scripts/build-nginx.sh: line 2: $'\r': command not found
/root/scripts/build-nginx.sh: line 3: syntax error near unexpected token `$'do\r''
'root/scripts/build-nginx.sh: line 3: `for conf in /etc/nginx/templates/*.conf; do
ERROR: Service 'nginx' failed to build: The command '/bin/sh -c /bin/bash /root/scripts/build-nginx.sh' returned a non-zero code: 2
There should be a docker-compose.override.yml
file in the example folder.
As pointed out in #25 (comment), we should no longer be using TLS 1.0 in the nginx conf.
We need to add instructions so people can contribute
This should probably be a build arguments in the node image
This should make it easier to customize nodock without editing the docker-compose.yml file.
The feature is already supported but it should be made easier too use through an example.
Is there a specific reason why you want to mount logs on volume? https://github.com/Osedea/nodock/blob/f851f5e/docker-compose.yml#L59
This will allow having a project without a web view (port 80)
I followed the instructions on the home page to try this repo out:
git clone https://github.com/Osedea/nodock.git
cp nodock/_examples/nginx/* .
cd nodock/ && docker-compose up -d node nginx
The nginx node comes up fine but the node node fails immediately with the following error
at Function.Module._resolveFilename (module.js:557:15)
at Function.Module._load (module.js:484:25)
at Function.Module.runMain (module.js:703:10)
at startup (bootstrap_node.js:193:16)
at bootstrap_node.js:665:3
Am I missing or not understanding something here?
Add a PostgreSQL container, it's definitely popular enough to warrant the extra service.
We must also add an example on how to use it.
Hello,
I am currently using nodock and my node app is running inside the container on 8000.
Here's a response inside the container:
root@11757b94d64a:/opt/app# curl -I localhost:8000
HTTP/1.1 200 OK
cache-control: no-cache
Date: Fri, 23 Mar 2018 09:13:55 GMT
Connection: keep-alive
And on nginx container, I see this:
location / {
proxy_pass http://node:8000;
}
I don't have much experience in docker, and I am not sure why it's not working.
Also, I have modified the docker-composer file and removed the folders and it's configs that I don't need, could that be the problem?
Please let me know.
Shahriar
It appears that the node/install.sh
script does not get the env variable NODE_VERSION
from docker-compose.yml
.
As #103 showed, we should have clear instructions as to how to add a frontend application inside our NoDock environment.
Add a simple example on how to deploy to a cloud server and run.
Need to add :
services:
node:
build:
args:
node_version: 6.7.0
To override.yml
The bash history should be saved for the node and workspace containers to make it easier to reuse commands even if container is rebuilt.
Have apache work as a dropdown replacement for nginx (VirtualHost configs, ssl, routing, etc.).
Somehow files those 5 lines of server block config don't seem very secure, we should disable so vulnerable options to increase security
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.