Reputation: 161
i need to build and push my docker image on dockerHub but i'm getting error on path Dockerfile.
i had learn other (Build Docker image using GitHub Actions: No such file or directory) but i don't understand how can resolve this error.
service:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./microservices/service
strategy:
matrix:
node-version: [16.x]
steps:
- name: CHECK-OUT GIT REPOSITORY
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: INSTALL DEPENDENCIES
run: npm ci
- name: BUILDING APP
run: npm run build --if-present
#- name: TESTINT APP
#- run: npm test
- name: Build & push Docker image
uses: mr-smithers-excellent/docker-build-push@v5
with:
image: dockercountname/aos_movie_service
tags: latest
registry: docker.io
dockerfile: Dockerfile
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
My Local directory: i have many subForlder for each service and each service contains his Dockerfile.
microservice_cicd(forlder)
microservices(forlder)
service1(forlder)
package.json
Dockerfile
...
service2(forlder)
package.json
Dockerfile
...
This is my Dockerfile:
FROM node:latest
RUN mkdir -p /src/app
WORKDIR /src/app
COPY package.json /src/app/package.json
RUN npm install
COPY . /src/app
EXPOSE 3003
CMD [ "npm", "start" ]
Upvotes: 0
Views: 1634
Reputation: 161
finally i had find a solution.
Workflow
AuthService:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./microservices/AuthService
strategy:
matrix:
node-version: [16.x]
steps:
- name: CHECK-OUT GIT REPOSITORY
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: INSTALL DEPENDENCIES
run: npm ci
- name: BUILDING APP
run: npm run build --if-present
#- name: TESTINT APP
#- run: npm test
- name: Build & push Docker image
uses: mr-smithers-excellent/docker-build-push@v5
with:
# directory: /microservices/AuthService
image: dockerHubCountName/aos_movie_auth_service
tags: latest
registry: docker.io
dockerfile: microservices/AuthService/Dockerfile
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
Dockerfile
FROM node:latest
RUN mkdir -p /src/app
WORKDIR /src/app
COPY microservices/SearchService .
RUN npm install
EXPOSE 3003
CMD [ "npm", "start" ]
Thank you.
Upvotes: 1