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) # 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. # Resolve app dependencies.
WORKDIR /app WORKDIR /lchatserver
COPY pubspec.* ./ COPY pubspec.* ./
RUN dart pub get RUN dart pub get
@ -10,14 +10,17 @@ RUN dart pub get
COPY . . COPY . .
# Ensure packages are still up-to-date if anything has changed # Ensure packages are still up-to-date if anything has changed
RUN dart pub get --offline 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 FROM ubuntu:latest
# libraries and configuration files stored in `/runtime/` from the build stage.
FROM scratch RUN apt-get update
COPY --from=build /runtime/ / RUN apt-get -y install libsqlite3-0 libsqlite3-dev
COPY --from=build /app/bin/server /app/bin/
# 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. # Start server.
EXPOSE 20706 EXPOSE 20706
CMD ["/app/bin/server"] CMD ["~/server/lchatserver/bin/tcp_server"]

View File

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