Added docker/podman compose

main
TZGyn 3 years ago
parent 27e25e2ba2
commit ad42e88ae4
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -0,0 +1,37 @@
version: 3.4
services:
web:
container_name: twitter_clone_laravel
build:
context: ./docker
dockerfile: Dockerfile
depends_on:
- twitter_clone_mysql
volumes:
- .:/var/www/html:Z
ports:
- 8080:8080
networks:
- sail
depends_on:
- mysql
mysql:
container_name: twitter_clone_mysql
image: mysql
restart: always
environment:
MYSQL_DATABASE: twitter
MYSQL_ALLOW_EMPTY_PASSWORD: 1
ports:
- 3306:3306
volumes:
- dbdata:/var/lib/mysql
- ./docker/mysqld.conf:/etc/mysql/my.cnf
networks:
- sail
networks:
sail:
driver: bridge
volumes:
dbdata:
driver: local

@ -0,0 +1,27 @@
FROM ubuntu:22.04
WORKDIR /var/www/html
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=UTC
RUN apt-get update \
&& apt-get install -y gnupg curl ca-certificates zip unzip git libcap2-bin libpng-dev python2 dnsutils librsvg2-bin \
&& curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c' | gpg --dearmor | tee /etc/apt/keyrings/ppa_ondrej_php.gpg > /dev/null \
&& echo "deb [signed-by=/etc/apt/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \
&& apt-get update \
&& apt-get install -y php8.2-cli php8.2-dev \
php8.2-gd php8.2-imagick \
php8.2-curl \
php8.2-imap php8.2-mysql php8.2-mbstring \
php8.2-xml php8.2-zip php8.2-bcmath php8.2-soap \
php8.2-intl php8.2-readline \
php8.2-ldap \
php8.2-msgpack php8.2-igbinary php8.2-redis php8.2-swoole \
php8.2-memcached php8.2-pcov php8.2-xdebug \
&& curl -sLS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer
EXPOSE 8080
CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8080"]

@ -0,0 +1,12 @@
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
# Where the database files are stored inside the container
datadir = /var/lib/mysql
# My application special configuration
max_allowed_packet = 32M
sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
# Accept connections from any IP address
bind-address = 0.0.0.0

@ -1,7 +1,7 @@
import axios from 'axios'
const request = axios.create({
baseURL: 'http://localhost:8000',
baseURL: 'http://localhost:8080',
withCredentials: true,
})

@ -15,14 +15,13 @@ const responseValidator = z.object({
})
const getPosts = async () => {
const data = await request.get('http://localhost:8000/api/posts', {
const data = await request.get('/api/posts', {
params: { lastPost: lastPost.value },
})
console.log(data)
const response = responseValidator.safeParse(data.data)
// console.log(parsePosts(response.data))
if (!response.success) return
@ -40,12 +39,8 @@ onMounted(() => {
<!-- {{ posts }} -->
<div class="flex w-full items-center justify-center">
<div class="flex w-1/2 flex-col gap-4 px-4 pb-10 pt-2 2xl:w-1/3">
<div
v-if="posts"
v-for="post in posts">
<PostCard
:title="post.title"
:description="post.description" />
<div v-if="posts" v-for="post in posts">
<PostCard :title="post.title" :description="post.description" />
</div>
<button @click="getPosts()">More {{ lastPost }}</button>
</div>

Loading…
Cancel
Save