mirror of
https://github.com/Linloir/Simple-TCP-Server.git
synced 2025-12-16 23:48:11 +08:00
Docker Update
- Usable docker file! - docker image now at linloir/lchatserver
This commit is contained in:
parent
68f8d51d3b
commit
0aa72b5dc3
14
.dockerignore
Normal file
14
.dockerignore
Normal 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/
|
||||||
21
Dockerfile
21
Dockerfile
@ -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"]
|
||||||
@ -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);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user