[DOCKER] Exécutez Nginx + Express avec Fargate 4 Core

--Emballage de Nginx + Express dans Fargate

api

Réglez le volume commun sur Volume

VOLUME /usr/src/tmp

Avoir le chemin de la chaussette spécifié par une variable d'environnement

main.js



const sock = process.env.SOCK_PATH;
app.listen(sock, () => {
  fs.chmodSync(sock, '666');
  console.log(`Server running on ${sock} with pid ` + process.pid);
});
  

nginx

api1.sock - en amont de api4.sock

nginx.conf


upstream api {
    server unix:///usr/src/tmp/api_1.sock;
    server unix:///usr/src/tmp/api_2.sock;
    server unix:///usr/src/tmp/api_3.sock;
    server unix:///usr/src/tmp/api_4.sock;
}
server {
    listen       80 default;
    listen  [::]:80;

    location / {
        proxy_pass http://api;       
        break;
    }
}

Définition de tâche

Connectez-vous avec la définition de tâche ECS

task-define.json


{
"containerDefinitions": [
  {
    "name": "nginx",
    "portMappings": [
      { "hostPort": 80, "protocol": "tcp", "containerPort": 80 }
    ],
    "mountPoints": [
      {
        "readOnly": true,
        "containerPath": "/usr/src/tmp",
        "sourceVolume": "etc"
      }
    ]
  },
  {
    "name": "api1",
    "mountPoints": [
      { "containerPath": "/usr/src/tmp", "sourceVolume": "etc" }
    ],
    "environment": [
      { "name": "SOCK_PATH", "value": "/usr/src/tmp/api_1.sock" }
    ]
  },
  {
    "name": "api2",
    "mountPoints": [
      { "containerPath": "/usr/src/tmp", "sourceVolume": "etc" }
    ],
    "environment": [
      { "name": "SOCK_PATH", "value": "/usr/src/tmp/api_2.sock" }
    ]
  },
  {
    "name": "api3",
    "mountPoints": [
      { "containerPath": "/usr/src/tmp", "sourceVolume": "etc" }
    ],
    "environment": [
      { "name": "SOCK_PATH", "value": "/usr/src/tmp/api_3.sock" }
    ]
  },
  {
    "name": "api4",
    "mountPoints": [
      { "containerPath": "/usr/src/tmp", "sourceVolume": "etc" }
    ],
    "environment": [
      { "name": "SOCK_PATH", "value": "/usr/src/tmp/api_4.sock" }
    ]
  }
],
"volumes": [{ "name": "etc" }],
}

Recommended Posts

Exécutez Nginx + Express avec Fargate 4 Core
Exécutez TAO Core avec Docker
Exécutez Payara avec Docker
Obstrué par l'installation Express npm
Exécuter un lot avec docker-compose avec Java batch
[Rails] Polymorphique express avec graphql-ruby
Exécutez Tensorflow avec THETA V
Exécutez LIFF avec Spring Boot
Exécuter des rails à chaque fois dans le docker
Exécuter Java VM avec Web Assembly