Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
O
odoo-demo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ndoumbe
odoo-demo
Commits
bb51299a
Commit
bb51299a
authored
Dec 19, 2024
by
binta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update file
parent
3e5b0531
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
46 deletions
+64
-46
.gitignore
.gitignore
+2
-1
Dockerfile
Dockerfile
+25
-9
Jenkinsfile
Jenkinsfile
+37
-36
No files found.
.gitignore
View file @
bb51299a
docker-config.json
\ No newline at end of file
docker-config.json
odoo_variables.env
\ No newline at end of file
Dockerfile
View file @
bb51299a
#
Utiliser l'image officielle d'Odoo comme base
FROM
odoo:16
#
utilisation de l'image de base d'odoo: dernier version
FROM
odoo:16
.0
# Copier le code source (modules custom) dans le conteneur
COPY
./addons /mnt/extra-addons
# Mise à jour du système et installation des dépendances pour l'execution d'odoo tout en optimisant l'image
RUN
apt-get update
&&
apt-get
install
-y
\
python3-pip
\
libxml2-dev
\
libxslt1-dev
\
libldap2-dev
\
libsasl2-dev
\
libjpeg-dev
\
libpq-dev
\
&&
apt-get clean
\
&&
rm
-rf
/var/lib/apt/lists/
*
# Définir les permissions nécessaires
RUN
chown
-R
odoo:odoo /mnt/extra-addons
# Copie des fichiers de configuration donner dans le projet de base
COPY
config/odoo.conf /etc/odoo/odoo.conf
COPY
odoo_variables.env /etc/odoo/odoo_variables.env
# Exposer le port par défaut d'Odoo
# Copie des modules et scripts pour la personnalisation de l'appli et octroiment de droit pour l'execution
COPY
addons /mnt/extra-addons
COPY
entreprise_addons /mnt/extra-addons/entreprise_addons
COPY
entrypoint.sh /entrypoint.sh
RUN
chmod
+x /entrypoint.sh
# Exposition du port de base d'odoo
EXPOSE
8069
#
Démarrer le service Odoo
CMD
["odoo", "--addons-path=/mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons
"]
#
execution du script apres lancement
ENTRYPOINT
["/entrypoint.sh
"]
Jenkinsfile
View file @
bb51299a
...
...
@@ -2,67 +2,68 @@ pipeline {
agent
any
environment
{
IMAGE_NAME
=
"registry.gitlab.com/binetaci/odoo-demo:latest"
CONFIG_FILE
=
"docker-config.json"
DOCKER_CONFIG_PATH
=
"/path/to/docker-config.json"
// ce fichier sera stocker dans le conteneur de jenkins au niveau du volume
DOCKER_REGISTRY
=
"registry.gitlab.com/votre-projet"
IMAGE_NAME
=
"odoo-app"
HELM_RELEASE
=
"odoo-release"
KUBE_CONTEXT
=
"docker"
// Contexte docker sera utilisé vu que j'utilise conteneur pour jenkins
}
stages
{
stage
(
'
Build
'
)
{
stage
(
'
Checkout
'
)
{
steps
{
echo
"Building Docker image..."
sh
"docker build -t ${IMAGE_NAME} ."
checkout
scm
}
}
/* stage('Push
Image') {
stage
(
'Build Docker
Image'
)
{
steps
{
echo "Pushing Docker image to GitLab Registry..."
withCredentials([usernamePassword(
credentialsId: 'gitlab-registry-credentials',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD'
)]) {
sh "docker login -u ${USERNAME} -p ${PASSWORD} registry.gitlab.com/binetaci"
sh "docker push ${IMAGE_NAME}"
script
{
docker
.
withCustomRegistryAuth
(
DOCKER_CONFIG_PATH
)
{
def
image
=
docker
.
build
(
"${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER}"
)
}
}
}
}
*/
}
stage
(
'Push Image'
)
{
stage
(
'Push
Docker
Image'
)
{
steps
{
echo
"Pushing Docker image to GitLab Registry..."
// Copier le fichier docker-config.json dans le répertoire Docker
sh
"mkdir -p ~/.docker"
sh
"cp ${CONFIG_FILE} ~/.docker/config.json"
// Pousser l'image dans le registre
sh
"docker push ${IMAGE_NAME}"
script
{
docker
.
withCustomRegistryAuth
(
DOCKER_CONFIG_PATH
)
{
def
image
=
docker
.
image
(
"${DOCKER_REGISTRY}/${IMAGE_NAME}:${env.BUILD_NUMBER}"
)
image
.
push
()
}
}
}
}
// la configuration du deploiement avec helm et argo est deja effectue il reste l'image a builder pour jenkins afin d'avoir l'application sur argo
stage
(
'Deploy with Helm'
)
{
steps
{
echo
"Deploying application with Helm..."
sh
"""
helm upgrade --install odoo-deployment ./helm/ \
--set image.repository=registry.gitlab.com/binetaci \
--set image.tag=latest
"""
script
{
sh
"""
helm upgrade --install ${HELM_RELEASE} ./charthelm-odoo \
--set image.repository=${DOCKER_REGISTRY}/${IMAGE_NAME} \
--set image.tag=${env.BUILD_NUMBER} \
--kube-context ${KUBE_CONTEXT}
"""
}
}
}
stage
(
'
ArgoCD Sync
'
)
{
stage
(
'
Sync with ArgoCD
'
)
{
steps
{
echo
"Triggering ArgoCD sync..."
sh
"argocd app sync odoo-deployment"
script
{
sh
"""
argocd app sync ${HELM_RELEASE} --kube-context ${KUBE_CONTEXT}
"""
}
}
}
}
post
{
always
{
echo
"Pipeline completed!"
cleanWs
()
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment