Dart – From scratch to deploy 🚀

Empecemos ✨

Creemos el proyecto desde 0.

Si tienes configurado Flutter, dart ya debería estar en tu PATH también.

$ dart create server

Obtendrás algo como esto:

void main(List<String> arguments) {
print(‘Hello world!’)…


This content originally appeared on DEV Community and was authored by Ushieru Kokoran

Empecemos ✨

Creemos el proyecto desde 0.

Si tienes configurado Flutter, dart ya debería estar en tu PATH también.

$ dart create server

Obtendrás algo como esto:

void main(List<String> arguments) {
  print('Hello world!');
}

Para este proyecto usaremos el poderoso server de Shelf.

$ dart pub add shelf

Agreguemos algo de código:

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;

void main() async {
  var server = await shelf_io.serve(
      (Request request) => Response.ok('Hello World!'), '0.0.0.0', 8080);

  print('Serving at http://${server.address.host}:${server.port}');
}

Entramos a localhost:8080:
Image description

Preparemos Docker

Esto no es un tutorial de docker así que no me detendré a explicarlo, eso daría para una serie de publicaciones 🤷‍♂️

Dockerfile

FROM dart:stable AS build
WORKDIR /app
COPY pubspec.* ./
RUN dart pub get
COPY . .
RUN dart pub get --offline
RUN dart compile exe bin/server.dart -o bin/server
FROM scratch
COPY --from=build /runtime/ /
COPY --from=build /app/bin/server /app/bin/
CMD ["/app/bin/server"]

.dockerignore

.dockerignore
resources
CHANGELOG.md
LICENSE
README.md
Dockerfile
build/
.dart_tool/
.git/
.github/
.gitignore
.packages

docker-compose.yml

version: '3'
services:
  dart-server:
    build: .
    ports:
      - "8080:8080"

Vamos a probarlo 🐛

$ docker compose up

Probamos de nuevo localhost:8080 y todo normal.

Preparativos 👩‍🚀👨‍🚀

Para esto usaremos Github y Railway (Por qué son excelentes herramientas y son gratis).

Railway nos dará un puerto para nuestra aplicación así que hay que hacer ese cambio.

  • Actualizamos nuestro código.
import 'dart:io';

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;

void main() async {
  var port = int.tryParse(Platform.environment['PORT'] ?? '') ?? 8080;
  var server = await shelf_io.serve(
      (Request request) => Response.ok('Hello World!'), '0.0.0.0', port);

  print('Serving at http://${server.address.host}:${server.port}');
}
  • Lo subimos a Github.
  • Inicializamos un nuevo proyecto con Github en Railway.
    Image description

  • Elegimos el repositorio, Railway detectara nuestro Dockerfile y empezara a armarlo.
    Image description

  • Al terminar nos imprimirá el log de nuestra aplicación y nos dará un URL.
    Image description

Y listo 🚀🚀

Estamos online.

Te gusto la practica? intentamos con otro lenguaje?
Cuéntame en los comentarios y Happy Hacking 🧑‍💻🎉


This content originally appeared on DEV Community and was authored by Ushieru Kokoran


Print Share Comment Cite Upload Translate Updates
APA

Ushieru Kokoran | Sciencx (2022-05-06T04:27:20+00:00) Dart – From scratch to deploy 🚀. Retrieved from https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/

MLA
" » Dart – From scratch to deploy 🚀." Ushieru Kokoran | Sciencx - Friday May 6, 2022, https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/
HARVARD
Ushieru Kokoran | Sciencx Friday May 6, 2022 » Dart – From scratch to deploy 🚀., viewed ,<https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/>
VANCOUVER
Ushieru Kokoran | Sciencx - » Dart – From scratch to deploy 🚀. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/
CHICAGO
" » Dart – From scratch to deploy 🚀." Ushieru Kokoran | Sciencx - Accessed . https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/
IEEE
" » Dart – From scratch to deploy 🚀." Ushieru Kokoran | Sciencx [Online]. Available: https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/. [Accessed: ]
rf:citation
» Dart – From scratch to deploy 🚀 | Ushieru Kokoran | Sciencx | https://www.scien.cx/2022/05/06/dart-from-scratch-to-deploy-%f0%9f%9a%80/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.