Compare commits

...

8 Commits

Author SHA1 Message Date
mco-system
6b89f86b71 doc: fix bad encoding 2025-10-05 18:36:17 +11:00
65b4622447 Merge pull request 'docker' (#2) from docker into master
Reviewed-on: #2
2025-10-05 11:26:03 +11:00
fb0ea65c80 Merge branch 'master' into docker 2025-10-05 11:25:06 +11:00
mco-system
c313b58375 fix+doc: fix missing CMD directive in dockerfile + updated doc 2025-10-05 11:23:45 +11:00
mco-system
002154f58f fix: missing CMD in Dockerfile 2025-10-05 11:07:10 +11:00
6159b7d07e Merge pull request 'docker' (#1) from docker into master
Reviewed-on: #1
2025-10-05 10:52:27 +11:00
mco-system
58c7549e65 fix: use extern mutex and COPT -fPIE -Wno-error. Add Dockerfile 2025-10-05 10:50:44 +11:00
mco-system
25ccec2fd3 WIP: missing picoles dir 2025-10-05 10:32:35 +11:00
8 changed files with 94 additions and 4 deletions

20
Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
FROM debian:12 AS guinnessd-base
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y make gcc && \
useradd -m -d /home/guinness -s /bin/false -r guinness
FROM guinnessd-base
COPY . /home/guinness/src
WORKDIR /home/guinness
RUN make -C /home/guinness/src && \
mv /home/guinness/src/guinnessd /usr/local/bin && \
mv /home/guinness/src/picoles /usr/local/share && \
chmod +x /usr/local/bin/guinnessd && \
rm -Rf /home/guinness/src && \
apt-get remove -y make gcc && \
apt-get autoremove -y
USER guinness
CMD ["/usr/local/bin/guinnessd", "-p", "1664", "-d", "/usr/local/share/picoles"]

View File

@@ -11,7 +11,7 @@ all: guinness guinnessd
H_DEP = broadcast.h commands.h defines.h guinnessd.h printlog.h \
xmem.h clients.h config.h drinks.h lists.h tools.h
COPT = -Wall -g
COPT = -fPIE -Wno-error -g
D_OBJS = xmem.o broadcast.o printlog.o lists.o tools.o drinks.o \
commands.o clients.o

4
Makefile.docker Normal file
View File

@@ -0,0 +1,4 @@
.PHONY: build
build:
docker build -t guinnessd:latest .

View File

@@ -63,7 +63,7 @@ boire le ventre vide, je vais manger une Guinness avant. »
tth@lubitel:~/Devel/GuinnessServer$ ./guinness -u tth
Serveur : [127.0.0.1] Port : [1664]
Utilisateur : [tth] Boisson : [guinness] Logout : [Bye bye...]
Pr<EFBFBD>fixe : [/]
Préfixe : [/]
-+- Connexion acceptee. -+-
Bienvenue sur le serveur de Guinness.
@@ -104,6 +104,47 @@ de la réserve de picole.
* modifier la gestion des fichiers de picole afin d'avoir une description
succinte dans le listing du bar.
## Conteneur
Le serveur BaaS (Beverage as a Service) est dorénavant disponible sous forme de conteneur.
### Génération de l'image
Création de l'image `guinnessd:latest`
```bash
make -f Makefile.docker build
```
### Utilisation du conteneur
- Le service écoute sur le port `1664`.
- Le bar se situe dans `/usr/local/share/picoles` et est déjà approvionné. il est donc possible d'en faire un *volume Docker*.
```bash
docker run --rm -p 1664:1664 guinnessd:latest
```
### *Docker Swarm*
Ma préférence allant à l'utilisation de *Docker* via les *Docker Swarm*, vous touverez ci-dessous un fichier de *stack*
```yaml
version: 3.9
service:
guinnessd:
image: guinnessd:latest
logging:
driver: journald
options:
tag: "docker: guinnessd"
ports:
- target: 1664
published: 1664
mode: host
deploy:
endpoint_mode: dnsrr
mode: replicated
replicas: 1 # Multipliez les barmen en ajoutant des réplicas :-)
```

View File

@@ -26,6 +26,7 @@
#include "broadcast.h"
#include "drinks.h"
pthread_mutex_t mutex_broadcast;
extern Elt *clients_list;
extern FILE *outerr;

View File

@@ -32,6 +32,8 @@
#include "commands.h"
#include "config.h"
pthread_mutex_t mutex_clients;
/* Config specifique serveur */
char *adr_ip = NULL;
int port = 0;

View File

@@ -30,8 +30,8 @@ typedef struct userinfos {
} userinfos;
pthread_mutex_t mutex_broadcast;
pthread_mutex_t mutex_clients;
extern pthread_mutex_t mutex_broadcast;
extern pthread_mutex_t mutex_clients;
#endif

22
picoles/steinlager Normal file
View File

@@ -0,0 +1,22 @@
.sssssssss.
.sssssssssssssssssss
sssssssssssssssssssssssss
ssssssssssssssssssssssssssss
@@sssssssssssssssssssssss@ss
|s@@@@sssssssssssssss@@@@s|s
_______|sssss@@@@@sssss@@@@@sssss|s
/ sssssssss@sssss@sssssssss|s
/ .------+.ssssssss@sssss@ssssssss.|
/ / |...sssssss@sss@sssssss...|
| | |.......sss@sss@ssss......|
| | |..........s@ss@sss.......|
| | |...........@ss@..........|
\ \ |............ss@..........|
\ '------+...........ss@...........|
\________ .........................|
|.........................|
/...........................\
|.............................|
|.......................|
|...............|