Skip to content

Instantly share code, notes, and snippets.

@mmaitlen
Last active November 20, 2024 17:01
Show Gist options
  • Save mmaitlen/723d3cb877ed4e884e2716ed4825296b to your computer and use it in GitHub Desktop.
Save mmaitlen/723d3cb877ed4e884e2716ed4825296b to your computer and use it in GitHub Desktop.
Created a shelf server with 'dart create -t server-shelf server1' in a mono repo using Melos.
So the server is located in myrepo/apps/server1.
The server runs just fine with 'dart run bin/server.dart', but when I try the Docker command
from the README.md file 'docker build . -t myserver' I get a bunch of unfound file errors (ERROR OUTPUT below)
I can see the files with an ls, so they are in my pub-cache
> ls /Users/michaelmaitlen/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib
shelf.dart shelf_io.dart src
I created another test server with the dart create command, by itself, not inside a mono
repo and the Docker command worked fine. Have tried multile flutter clean;flutter pub get;melos bs
passes with same results.
Any suggestions would be greatly appreciated!!
ERROR OUTPUT
server1 > docker build . -t myserver
[+] Building 4.1s (10/12) docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 605B 0.0s
=> [internal] load metadata for docker.io/library/dart:stable 1.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [build 1/6] FROM docker.io/library/dart:stable@sha256:6489a269e878813bf5a8fe66256c1a3e552d3a3c53eef9c1b224e2d8d737ca6d 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 1.34kB 0.0s
=> [build 2/6] WORKDIR /app/tsa_server 0.0s
=> [build 3/6] COPY pubspec.* ./ 0.0s
=> [build 4/6] RUN dart pub get 2.6s
=> [build 5/6] COPY . . 0.0s
=> ERROR [build 6/6] RUN dart compile exe bin/server.dart -o bin/server 0.3s
------
> [build 6/6] RUN dart compile exe bin/server.dart -o bin/server:
0.264 bin/server.dart:3:8: Error: Error when reading '/Users/michaelmaitlen/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib/shelf.dart': No such file or directory
0.264 import 'package:shelf/shelf.dart';
0.264 ^
0.264 bin/server.dart:4:8: Error: Error when reading '/Users/michaelmaitlen/.pub-cache/hosted/pub.dev/shelf-1.4.2/lib/shelf_io.dart': No such file or directory
0.264 import 'package:shelf/shelf_io.dart';
0.264 ^
0.264 bin/server.dart:5:8: Error: Error when reading '/Users/michaelmaitlen/.pub-cache/hosted/pub.dev/shelf_router-1.1.4/lib/shelf_router.dart': No such file or directory
0.264 import 'package:shelf_router/shelf_router.dart';
0.264 ^
0.264 bin/server.dart:17:1: Error: Type 'Response' not found.
0.264 Response _rootHandler(Request req) {
0.264 ^^^^^^^^
0.264 bin/server.dart:17:23: Error: Type 'Request' not found.
0.264 Response _rootHandler(Request req) {
0.264 ^^^^^^^
0.264 bin/server.dart:21:1: Error: Type 'Response' not found.
0.264 Response _echoHandler(Request request) {
0.264 ^^^^^^^^
0.264 bin/server.dart:21:23: Error: Type 'Request' not found.
0.264 Response _echoHandler(Request request) {
0.264 ^^^^^^^
0.264 bin/server.dart:8:17: Error: Method not found: 'Router'.
0.264 final _router = Router()
0.264 ^^^^^^
0.264 bin/server.dart:11:19: Error: 'Request' isn't a type.
0.264 ..get('/ping', (Request request) {
0.264 ^^^^^^^
0.264 bin/server.dart:14:12: Error: Undefined name 'Response'.
0.264 return Response.ok('hello-world');
0.264 ^^^^^^^^
0.264 bin/server.dart:17:23: Error: 'Request' isn't a type.
0.264 Response _rootHandler(Request req) {
0.264 ^^^^^^^
0.264 bin/server.dart:18:10: Error: Undefined name 'Response'.
0.264 return Response.ok('Hello, World!\n');
0.264 ^^^^^^^^
0.264 bin/server.dart:21:23: Error: 'Request' isn't a type.
0.264 Response _echoHandler(Request request) {
0.264 ^^^^^^^
0.264 bin/server.dart:23:10: Error: Undefined name 'Response'.
0.264 return Response.ok('$message\n');
0.264 ^^^^^^^^
0.264 bin/server.dart:31:19: Error: Method not found: 'Pipeline'.
0.264 final handler = Pipeline() //
0.264 ^^^^^^^^
0.264 bin/server.dart:32:22: Error: Method not found: 'logRequests'.
0.264 .addMiddleware(logRequests())
0.264 ^^^^^^^^^^^
0.264 bin/server.dart:37:24: Error: Method not found: 'serve'.
0.264 final server = await serve(handler, ip, port);
0.264 ^^^^^
0.265 Error: AOT compilation failed
0.265 Bad state: Generating AOT kernel dill failed!
------
Dockerfile:11
--------------------
9 | # Copy app source code (except anything in .dockerignore) and AOT compile app.
10 | COPY . .
11 | >>> RUN dart compile exe bin/server.dart -o bin/server
12 |
13 | # Build minimal serving image from AOT-compiled `/server`
--------------------
ERROR: failed to solve: process "/bin/sh -c dart compile exe bin/server.dart -o bin/server" did not complete successfully: exit code: 64
View build details: docker-desktop://dashboa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment