Docker Update

- Usable docker file!
- docker image now at linloir/lchatserver
This commit is contained in:
Linloir 2022-10-19 17:01:20 +08:00
parent 68f8d51d3b
commit 0aa72b5dc3
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366
3 changed files with 29 additions and 14 deletions

14
.dockerignore Normal file
View File

@ -0,0 +1,14 @@
# Files and directories created by pub.
Dockerfile
build/
.dart_tool/
.git/
.github/
.gitignore
.packages
.data/
.tmp/
# Conventional directory for build output.
build/

View File

@ -1,8 +1,8 @@
# Specify the Dart SDK base image version using dart:<version> (ex: dart:2.12)
FROM dart:stable AS build
FROM dart:stable AS compile
# Resolve app dependencies.
WORKDIR /app
WORKDIR /lchatserver
COPY pubspec.* ./
RUN dart pub get
@ -10,14 +10,17 @@ RUN dart pub get
COPY . .
# Ensure packages are still up-to-date if anything has changed
RUN dart pub get --offline
RUN dart compile exe bin/server.dart -o bin/server
RUN dart compile exe bin/tcp_server.dart -o bin/tcp_server
# Build minimal serving image from AOT-compiled `/server` and required system
# libraries and configuration files stored in `/runtime/` from the build stage.
FROM scratch
COPY --from=build /runtime/ /
COPY --from=build /app/bin/server /app/bin/
FROM ubuntu:latest
RUN apt-get update
RUN apt-get -y install libsqlite3-0 libsqlite3-dev
# Copy the previously built executable into the scratch layer
COPY --from=compile /runtime/ ~/server/
COPY --from=compile /lchatserver/bin/tcp_server ~/server/lchatserver/bin/
# Start server.
EXPOSE 20706
CMD ["/app/bin/server"]
CMD ["~/server/lchatserver/bin/tcp_server"]

View File

@ -1,7 +1,7 @@
/*
* @Author : Linloir
* @Date : 2022-10-06 15:44:16
* @LastEditTime : 2022-10-17 22:56:11
* @LastEditTime : 2022-10-19 14:41:56
* @Description :
*/
@ -15,10 +15,8 @@ import 'package:tcp_server/tcpcontroller/request.dart';
import 'package:tcp_server/tcpcontroller/response.dart';
void main(List<String> arguments) async {
//Set port
var address = arguments.isEmpty ? '127.0.0.1' : arguments[0];
//Set address
var port = arguments.length < 2 ? 20706 : int.tryParse(arguments[1]) ?? 20706;
var port = arguments.isEmpty ? 20706 : int.tryParse(arguments[1]) ?? 20706;
//Create nessesary working directories
await Directory('${Directory.current.path}/.tmp').create();
@ -28,7 +26,7 @@ void main(List<String> arguments) async {
await DataBaseHelper().initialize();
Map<int, List<TCPController>> tokenMap = {};
Map<TCPController, Future<int>> controllerMap = {};
var listenSocket = await ServerSocket.bind(address, port);
var listenSocket = await ServerSocket.bind(InternetAddress.anyIPv4, port);
listenSocket.listen(
(socket) {
var controller = TCPController(socket: socket);