Comment déployer sur AWS à l'aide de NUXTJS S3 et CloudFront officiels? Avec docker-compose

introduction

Comment déployer sur AWS en utilisant S3 et CloudFront dans la documentation officielle? Je voudrais résumer comment déployer facilement avec docker-compose.

(Document officiel) Comment déployer sur AWS à l'aide de S3 et CloudFront?

Veuillez consulter ici pour les paramètres d'AWS (S3, CloudFront).

1. Structure des fichiers

nuxtapp/docker-compose.yml
nuxtapp/Dockerfile
nuxtapp/deploy.sh
nuxtapp/gulpfile.js

2. Préparation du fichier requise pour la conversion Docker

Dockerfile


FROM node:12.18.3-alpine3.9
RUN apk add --no-cache openssh bash python make
RUN npm install -g gulp
RUN npm install --save-dev gulp gulp-awspublish gulp-cloudfront-invalidate-aws-publish concurrent-transform

docker-compose.yml


version: '3'

services:
  node: &app_base
    build: .
    # tty: true
    working_dir: /var/www
    volumes:
      - .:/var/www
    environment:
      PORT: 3000
      HOST: 0.0.0.0
  install:
    <<: *app_base
    command: npm ci
  dev:
    <<: *app_base
    ports:
      - "3000:3000"
    command: npm run dev
  generate:
    <<: *app_base
    command: npm run generate
  dev_static:
    image: httpd
    volumes:
      - ./dist:/usr/local/apache2/htdocs/
    ports:
      - "80:80"
  s3deploy:
    <<: *app_base
    command: ./deploy.sh

Pour docker-compose.yml, changez l'article ici de yarn en npm, et utilisez le Dockerfile pour installer manuellement la procédure dans le conteneur. Je l'ai préparé.

3. Comment utiliser

Chaque conteneur doit être défini dans docker-compose.yml selon les besoins.

Lancer l'environnement de développement d'applications

$ docker-compose up dev

Exécutez npm run dev dans le conteneur.

Génération de fichiers statiques

$ docker-compose up generate

Exécutez npm run generate dans le conteneur. Le résultat de sortie est envoyé par défaut sur nuxtapp / dist.

Vérification locale du fonctionnement du fichier statique de sortie

$ docker-compose up dev_static

Exposez le dist localement dans le conteneur Tomcat. http://localhostにアクセスするとアプリを確認できます。

Déployer

$ docker-compose up s3deploy

Exécutez deploy.sh dans le conteneur.

Si vous suivez l'image de réussite de la procédure officielle, vous avez terminé.

Recommended Posts

Comment déployer sur AWS à l'aide de NUXTJS S3 et CloudFront officiels? Avec docker-compose
[Rails] Comment télécharger des images sur AWS S3 à l'aide de Carrierwave et de fog-aws
[Rails] Comment télécharger des images sur AWS S3 à l'aide de refile et refile-s3
Comment déployer Java sur AWS Lambda avec Serverless Framework
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
Comment surveiller nginx avec docker-compose avec datadog
Comment réaliser une recherche hybride en utilisant l'analyse morphologique et Ngram avec Solr
Comment utiliser les fichiers args:, environment:, env_file: et .env avec la commande docker-compose
Premiers pas avec Micronaut 2.x ~ Construction native et déploiement sur AWS Lambda ~
Comment sortir Excel et PDF avec Excella
Comment exécuter une méthode et simuler avec JUnit
Comment jouer de la voix ou de la musique en utilisant javascript
[AWS] Comment déployer automatiquement une application Web créée avec Rails 6 sur ECR / ECS à l'aide de CircleCI (1) Préparation [Déploiement de conteneur]
Comment utiliser le framework Java avec AWS Lambda! ??
Comment enregistrer des images sur Heroku dans S3 sur AWS
Comment envoyer des métriques et des événements personnalisés à datadog avec laravel dans l'environnement docker-compose
Déployer des rails sur ECS Fargate avec AWS Copilot
Comment créer une API avec GraphQL et Rails
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
Comment faire un test unitaire avec JVM sur une source à l'aide de RxAndroid
J'ai démarré MySQL 5.7 avec docker-compose et j'ai essayé de me connecter
Comment sérialiser et désérialiser le type LocalDateTime avec GSON
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment télécharger des images depuis AWS S3 (rails, carrierwave)
[Rails] Créez un plan de site à l'aide de sitemap_generator et déployez-le dans GAE
Comment installer Gradle et Kotlin avec SDKMAN (Mac)
Comment écrire docker-compose
Comment créer docker-compose
Comment tester avec des images lors de l'utilisation d'ActiveStorage et de Faker
Comment définir des variables d'environnement lors de l'utilisation de Payjp avec Rails
Comment transformer des figurines ARKit et SceneKit avec Metal Shader
Comment définir et décrire des variables d'environnement à l'aide de Rails zsh
Comment déployer jQuery dans les applications Rails à l'aide de Webpacker
Comment déployer une application kotlin (java) sur AWS Fargate
Comment créer une application à l'aide de Tensorflow avec Android Studio
Comment joindre une table sans utiliser DBFlute et SQL
Comment démarrer avec JDBC en utilisant PostgresSQL sur MacOS
Comment déployer l'application Rails sur AWS (résumé de l'article)
Comment s'inscrire en tant que client dans Square à l'aide de Tomcat
Comment gérer différentes versions de rbenv et Ruby
Importer / télécharger / supprimer en bloc des données sur S3 à l'aide d'Amazon S3 Client Builder avec AWS SDK pour Java
Comment utiliser le certificat et la clé privée créés par l'authentification BASIC de Docker avec AWS ALB
Comment déployer avec heroku
Comment numéroter (nombre) avec html.erb
Comment mettre à jour avec activerecord-import
Comment autoriser à l'aide de graphql-ruby
[Docker-compose] Comment utiliser des volumes de volumes non nommés et nommés. Lier la monture
Crypter les données téléchargées vers S3 à l'aide du kit AWS SDK pour Java / SSE-KMS
Comment POST JSON dans la méthode Java en utilisant OkHttp3 et la méthode en utilisant HttpUrlConnection-
[Rails] Comment introduire le kaminari avec Slim et changer le design
[Astuces] Comment résoudre les problèmes avec XCode et Swift pour les débutants
Comment publier une application à l'aide de la construction d'environnement d'instance AWS (3) EC2