4 Commits

Author SHA1 Message Date
79836b065a feat(docker): using reg.cadoles.com to publish image 2024-02-26 15:20:26 +01:00
725fea2387 fix(dockerfile): updating build image
make the build faster and lighter
2024-02-26 14:56:58 +01:00
1dc731ca77 Merge branch 'develop' into feat/nonrootuser 2024-02-26 14:43:10 +01:00
987208dd03 feat(docker): do not run container as root
Using a non root user to execute the application.
We don't need to be root
2024-02-26 11:54:51 +01:00
3 changed files with 24 additions and 32 deletions

View File

@ -21,11 +21,11 @@ docker-run:
fake-sms:latest fake-sms:latest
docker-release: docker-release:
docker tag fake-sms:latest cadoles/fake-sms:latest docker tag fake-sms:latest reg.cadoles.com/cadoles/fake-sms:latest
docker tag fake-sms:latest cadoles/fake-sms:$(DOCKER_DATE_TAG) docker tag fake-sms:latest reg.cadoles.com/cadoles/fake-sms:$(DOCKER_DATE_TAG)
docker login docker login reg.cadoles.com
docker push cadoles/fake-sms:latest docker push reg.cadoles.com/cadoles/fake-sms:latest
docker push cadoles/fake-sms:$(DOCKER_DATE_TAG) docker push reg.cadoles.com/cadoles/fake-sms:$(DOCKER_DATE_TAG)
test: test:
go test -v -race ./... go test -v -race ./...

View File

@ -50,20 +50,12 @@ La configuration de FakeSMTP peut être personnalisée via des variables d'envir
Les valeurs des variables d'environnement surchargent les valeurs présentes dans le fichier de configuration. Les valeurs des variables d'environnement surchargent les valeurs présentes dans le fichier de configuration.
| Variable | Correspondance dans le fichier de configuration | |Variable|Correspondance dans le fichier de configuration|
| -------------------------- | ----------------------------------------------- | |--------|-----------------------------------------------|
| `FAKESMS_HTTP_ADDRESS` | `http.address` | |`FAKESMS_HTTP_ADDRESS`|`http.address`|
| `FAKESMS_HTTP_TEMPLATEDIR` | `http.templateDir` | |`FAKESMS_HTTP_TEMPLATEDIR`|`http.templateDir`|
| `FAKESMS_HTTP_PUBLICDIR` | `http.publicDir` | |`FAKESMS_HTTP_PUBLICDIR`|`http.publicDir`|
| `FAKESMS_POWOW_API_KEY` | `powow.apiKey` | |`FAKESMS_POWOW_API_KEY`|`powow.apiKey`|
### Lancer en mode read-only
Pour lancer le conteneur en mode read-only, la variable `FAKESMTP_DATA_PATH` doit être définie et un volume doit être créé à cet emplacement. Exemple avec docker :
```sh
docker run -it --rm -p 3000:3000 --env FAKESMS_DATA_PATH='/app/data/fakesms.db' --read-only -v $(pwd)/data:/app/data cadoles/fake-sms
```
## Mocks ## Mocks
@ -73,9 +65,9 @@ Un mock de l'API Powow est disponible via l'URL `http://<fake_sms_host>/api/v1/m
Les commandes suivantes sont implémentées: Les commandes suivantes sont implémentées:
| Commande | Documentation officiele | Notes | |Commande|Documentation officiele|Notes|
| ----------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------- | |--------|-----------------------|-----------|
| `TransactionalSms.Send` | https://powow4.iroquois.fr/user/docs/api/#send-transactional-sms | La définition des modèles de SMS s'effectue via la configuration. | |`TransactionalSms.Send`|https://powow4.iroquois.fr/user/docs/api/#send-transactional-sms|La définition des modèles de SMS s'effectue via la configuration.|
Un exemple d'appel à l'API est disponible dans le fichier [`misc/powow.http`](./misc/powow.http). Un exemple d'appel à l'API est disponible dans le fichier [`misc/powow.http`](./misc/powow.http).

View File

@ -1,14 +1,11 @@
FROM golang:1.17 AS build FROM reg.cadoles.com/dh/library/golang:1.22-alpine AS build
ARG HTTP_PROXY= ARG HTTP_PROXY=
ARG HTTPS_PROXY= ARG HTTPS_PROXY=
ARG http_proxy= ARG http_proxy=
ARG https_proxy= ARG https_proxy=
RUN apt-get update && apt-get install -y build-essential git bash curl python2 RUN apk update && apk add --no-cache build-base git bash curl python3 nodejs npm
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs
COPY . /src COPY . /src
@ -16,19 +13,22 @@ WORKDIR /src
RUN cp -f misc/docker/config-patch.yml misc/release/config-patch.yml RUN cp -f misc/docker/config-patch.yml misc/release/config-patch.yml
RUN go get github.com/krishicks/yaml-patch/cmd/yaml-patch RUN go install github.com/krishicks/yaml-patch/cmd/yaml-patch@v0.0.10
RUN npm install \ RUN npm install \
&& make vendor \ && make vendor \
&& echo "---" > ./misc/release/config-patch.yml \ && echo "---" > ./misc/release/config-patch.yml \
&& make ARCH_TARGETS=amd64 release && make ARCH_TARGETS=amd64 release
FROM busybox FROM busybox
COPY --from=build /src/release/fake-sms-linux-amd64 /app RUN adduser -D -h /app sms
COPY --from=build /src/release/fake-sms-linux-amd64 /app
RUN chown -R sms:sms /app
USER sms
WORKDIR /app WORKDIR /app
RUN mkdir -p /app
CMD ["bin/fake-sms", "--config", "config.yml"] CMD ["bin/fake-sms", "--config", "config.yml"]